上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
  2016年5月21日
摘要: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ cl... 阅读全文
posted @ 2016-05-21 17:13 summerkiki 阅读(181) 评论(0) 推荐(0) 编辑
  2016年5月20日
摘要: 这样写很啰嗦,可以考虑申请一个头结点,然后对l1、l2的操作就可以合并在一起。 递归方法如下: 阅读全文
posted @ 2016-05-20 09:54 summerkiki 阅读(133) 评论(0) 推荐(0) 编辑
  2016年5月18日
摘要: 这道题要删除倒数第n个结点,因此要先找到倒数第n+1个结点,然后进行删除。由于可能删除的是链表的第一个结点,因此需要在链表开始插入一个空的头结点。 写题之前要提前想好几种特殊情况: 1. head指针为空,或者链表只有一个结点时,均返回NULL 2. 要删除的结点是头结点或者尾结点 阅读全文
posted @ 2016-05-18 09:41 summerkiki 阅读(128) 评论(0) 推荐(0) 编辑
  2016年5月17日
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 class Solution { public: void reOrderArray(vector<int> &ar 阅读全文
posted @ 2016-05-17 22:28 summerkiki 阅读(130) 评论(0) 推荐(0) 编辑
  2016年5月16日
摘要: 这道题的直观思路不难,但是要注意很多细节问题。 首先,x要考虑整数、小数和0的情况。0不能取负数次方,0的0次方没有数学意义,可以取0也可以取1。 由于这里要处理x为小数的情况,因此x的类型为double,要判断一个double类型的x是否等于0,不能直接用(x==0.0),因为在计算机内表示小数时 阅读全文
posted @ 2016-05-16 11:13 summerkiki 阅读(234) 评论(0) 推荐(0) 编辑
  2016年5月15日
摘要: 这道题可以看作是26进制问题。26进制就是最多可以用26个不同的符号组合在一起来表示一个数值。 因此,ABC代表的数值就是:A*262+B*261+C*260=1*262+2*261+3*260,其他字母组合以此类推。 下面这种方法是一种很直观的思路,但是要调用C++库函数pow(x,a),计算时间 阅读全文
posted @ 2016-05-15 17:33 summerkiki 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 在计算机中,有符号数是以补码表示的。 1. 原码 原码的第一位是符号位,其余位表示值。比如8位二进制: [+1]原=0000 0001 [- 1]原=1000 0001 2. 补码 正数的补码就是它本身,负数的补码是在原码的基础上,符号位不变,其余各位取反+1。 [+1]补=0000 0001 [- 阅读全文
posted @ 2016-05-15 16:41 summerkiki 阅读(2200) 评论(0) 推荐(0) 编辑
  2016年5月14日
摘要: 把数字n与1作与运算,判断n的最低位是不是1,接着把1左移一位得到2,再和n做与运算,就能判断n的次低位是不是1... 这样反复左移,每次都能判断n的其中一位是不是1。这种解法循环的次数等于n二进制的位数。 *把n减1,就是把n二进制表达中的最后一个1变为0,如果它右边还有0的话,则所有的0都变为1 阅读全文
posted @ 2016-05-14 16:41 summerkiki 阅读(88) 评论(0) 推荐(0) 编辑
  2016年5月11日
摘要: 这道题直观的思路是对数组直接排序,排序后中间位置的元素就是要求的元素,时间复杂度是O(nlogn)。 但是还有更快的解法,基于快速排序中partition函数的O(n)算法。快速排序的partition函数有两种解法,一种是“两个下标分别从首尾向中间扫描”,另一种是“两个指针索引一前一后逐步向后扫描 阅读全文
posted @ 2016-05-11 09:22 summerkiki 阅读(152) 评论(0) 推荐(0) 编辑
  2016年5月10日
摘要: 排序数组在旋转后,可以分为前后两个排序子序列。在没有相同元素的情况下,前一个数组中的元素均大于后一个数组中的元素。 如果我们要找最小元素,则只要找到两个数组的分界点即可,即第二个子序列的开始元素。 由于子序列分别有序,所以我们可以采用二分查找的思想来解决问题,不断缩小查询范围。 这道题要注意特例情况 阅读全文
posted @ 2016-05-10 10:13 summerkiki 阅读(113) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页