摘要:
如题。 阅读全文
摘要:
约定: 多次插入同一个key的节点,其value值取最后一次插入的值。 递归实现: 非递归实现: 阅读全文
摘要:
很多语言的可动态变化容量的容器,其容量扩展一般是翻倍增长的策略,这里来分析一下翻倍增长策略的效率,以C++的vector容器为例。 我们不妨使用分摊复杂度分析:假设初始容量为一个常数N,连续执行n次insert()操作,最终size增长至N+n,根据算法策略,填装因子一直在(50%,100%]范围内 阅读全文
摘要:
7-37 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。 输入格式: 每个输入包含一个测试用例,即正整数N (0<N≤30)。 输出格式: 按递增顺序输出N的所有整数分解式 阅读全文
摘要:
1080 MOOC期终成绩(25 分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为 G=(Gmid−ter 阅读全文
摘要:
最大公约数(Greatest Common Divisor, GCD) 欧几里得算法:计算两个非负整数p和q的最大公约数:若q是0,则最大公约数是p;否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。 递归 迭代 最小公倍数(Maximum Common Multiple,MCM 阅读全文
摘要:
斐波那契数列(Fibonacci Sequence) 又称黄金分割数列,或兔子数列(因为是斐波那契观察兔子生殖而总结得到)。 在数学上,被定义为递推式:F(1)=1, F(2)=1, F(3)=2, F(4)=3, F(5)=5, ..., F(n)=F(n-1)+F(n-2)(n≥3)。 单元测试 阅读全文
摘要:
在处理数据时,经常需要将一组无序序列变得有序,这里就需要用到排序算法。 排序算法 经过几十年的发展,排序算法也有很多种,这里记录一下入门的排序算法,有:冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、桶排序、基数排序等。 时间复杂度(T(n)):指算法执行时耗费的时间长度。 空间 阅读全文
摘要:
1020 月饼(25 分) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15 阅读全文
摘要:
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都 阅读全文