摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 【思路1】递归 【思路2】非递归,新建一个链表并保存头结点,将原来两个链表进行比较按顺序插入到新链表中,最后将有剩余的链表直接接上。 阅读全文
posted @ 2017-02-27 18:40 Strawberry丶 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,反转链表后,输出链表的所有元素。 【思路1】三个指针在链表上同时滑动。 【思路2】头插法 阅读全文
posted @ 2017-02-27 16:38 Strawberry丶 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 【思路】利用两个相隔为k-1个结点的指针进行遍历,当后一个指针移到末尾时,前一个指针就是要求的结点。 阅读全文
posted @ 2017-02-27 16:02 Strawberry丶 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 【思路1】用2n的空间换取n的时间复杂度,另外开一个数组,先将奇数存入再将偶数存入 【思路2】 * 1.要想保证原有 阅读全文
posted @ 2017-02-27 14:31 Strawberry丶 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 【思路1】递归 1 class Solution { 2 public: 3 double Power(double base, int exponent) { 4 if(exponent < 0){ 5 base = 1/base; 6 exponent = -exponent; 7 } 8 if 阅读全文
posted @ 2017-02-27 12:43 Strawberry丶 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 【思路】如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。 举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变 阅读全文
posted @ 2017-02-24 16:05 Strawberry丶 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 【思路】可归纳得出结论: f(n) = f(n-1) + f(n-2), (n > 2)。 另外: (1)1 * 3方块 覆 盖3*n区域:f(n) = f(n 阅读全文
posted @ 2017-02-24 15:27 Strawberry丶 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 【思路1】每个台阶都有跳与不跳两种可能性(最后一个台阶除外),最后一个台阶必须跳。所以共用2^(n-1)中情况。 【思路2】 关于本题,前提是n个台阶会有一次n阶的跳法。分析如下 阅读全文
posted @ 2017-02-24 03:44 Strawberry丶 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 【思路】与斐波那契数列类似 阅读全文
posted @ 2017-02-24 03:23 Strawberry丶 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 int res[40] = {0}; 5 res[0] = 1; 6 res[1] = 1; 7 for(int i = 2;i < n;i ++){ 8 res[i] = ... 阅读全文
posted @ 2017-02-24 03:16 Strawberry丶 阅读(130) 评论(0) 推荐(0) 编辑