- 博客(6)
- 收藏
- 关注
转载 剑指offer编程-链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路: 1.遍历链表得到链表的长度l,找到从前往后的第l-k+1个节点。需要遍历两遍。 2.遍历一次即可的方法:两个指针,第一个指针从头向尾移动k-1步后第二个指针开始从头向尾移动,第一个指针到尾结点时第一个指针指向倒数第k个结点。 ListNode* FindKthToTail(ListNode* pListH...
2017-09-28 10:33:00 70
转载 剑指offer编程-二进制中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路: 1.数字在计算机中本身为2进制存储,则每次判断数字末尾是不是1(与1相与),若为1计数加一,然后把数字右移一位,不断重复,直至为零。----会造成死循环,考虑负数的情况,右移后左边位补充1。 **虽然右移操作和除2等价,但是除法运算的效率比移位运算低的多。 2.数字不移位,先用1和数字相与,...
2017-09-27 12:00:00 60
转载 剑指offer编程-旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: 1.顺序查找 O(n):从前往后,找到当前位置数比它前面的数小的数,返回该数。 ...
2017-08-25 18:06:00 51
转载 剑指offer编程-重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: 1.根据前序第一个为根节点; 2.然后在中序序列中找到根节点,根节点左侧为它的左子树,根节点右侧为它的右子树; 3.递归对左...
2017-08-25 16:00:00 72
转载 剑指offer编程-替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 原数字符数组间够大,在原数组中替换,不开辟新的数组。 思路: 1.从前往后遇到空格就替换成“%20”。考虑到元素覆盖,要不断后移元素。复杂度O(n2)。 2.新字符串长度=原字符串长度+2*字符串中空格数...
2017-08-24 15:52:00 67
转载 剑指offer编程-二维数组中的查找
二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 #include<iostream> #include<vector> using namespace std; class Solution {...
2017-08-23 11:48:00 68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人