摘要: 源代码: 阅读全文
posted @ 2016-04-04 21:09 Dormant 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 算法思想: 这个题目的思想是通过两个指针分别指向两个链表,递归比较两个链表的值得大小,然后赋值给新建的头结点。直到结束。这里需要注意的就是,我们需要检查两个传进来的链表是否为空; 算法实现: 参 阅读全文
posted @ 2016-03-29 15:43 Dormant 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个链表,反转链表后,输出链表的所有元素。 算法思想: 其实这个题目并不是很难,我们需要注意的就是在一些边界问题的处理上。使它的鲁棒性更好。我们只需记录三个指针,来改变三个指针的值去交换即可。 算法实现: 阅读全文
posted @ 2016-03-29 14:49 Dormant 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 算法思想: 这种题型应该见过的,一般只要的涉及倒数。我们就需要设置两个指针了。这道题我们需要设置两个指针,先让一个指针向前移动k-1个位置(保持两个指针之间的距离为k-1),然后让第二个指针指向头结点,之后让两个指针同时向后移动,直到前边的指针 阅读全文
posted @ 2016-03-28 20:56 Dormant 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 算法描述: 我们需要两个指针,其中一个指向开始(begin),另一个指向最后(end),begin指针只向后移动, 阅读全文
posted @ 2016-03-28 19:39 Dormant 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 按照以往的习惯,这种题我们需要遍历整个链表,找到需要删除节点的前一个节点,这样我们就可以操作删除的方法了,这种方法需要O(n)的时间复杂度,但这里要求我们在O(1)的时间下完成。我们只能想其他的方法。 算法思想:其实我们也不需要知道删除节点前一个节点。我们的做法是将删除节点的后边一个节点的值赋给要删 阅读全文
posted @ 2016-03-28 17:49 Dormant 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.csdn.net/jxh_123/article/details/38364923?utm_source=tuicool&utm_medium=referral 题目描述: 输入数字n,按顺序打印出从1最大的n位十进制数。例如输入3,则打印出1,2,3一直到最大的3位数 阅读全文
posted @ 2016-03-28 16:38 Dormant 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 算法注意事项: 算法并不是很难,但这里要注意对输入的要求进行检查,例如指数是0的情况,底数是0的情况,底数是-1的情况等。所以这里还是要注意很多问题的。下面是代码,从代码中来学 阅读全文
posted @ 2016-03-27 19:01 Dormant 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入两个整数m, n;计算需要改变你的二进制表示的多少位才能得到另一个数。例如13二进制为1101, 10的二进制为1010.我们需要改变3位才可以。 算法实现: 阅读全文
posted @ 2016-03-26 16:09 Dormant 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 下面来简单说一下斐波那契数列的有效率的解法: 我们刚刚接触递归时肯定学习了斐波那契数列这样一个经典的例子,但这里的递归算法有一些效率问题。因为如果我们求fib(100)时。我们会发现产生了许多的重复运算。这些不但消耗着计算时间和资源容易产生栈溢出。这是非常危险的。所以下面介绍一个迭代的算法:(算法不 阅读全文
posted @ 2016-03-26 15:19 Dormant 阅读(891) 评论(0) 推荐(0) 编辑