摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路: 1.遍历链表得到链表的长度l,找到从前往后的第l-k+1个节点。需要遍历两遍。 2.遍历一次即可的方法:两个指针,第一个指针从头向尾移动k-1步后第二个指针开始从头向尾移动,第一个指针到尾结点时第一个指针指向倒数第k个结点。 ListNo 阅读全文
posted @ 2017-09-28 10:33 usj 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路: 1.数字在计算机中本身为2进制存储,则每次判断数字末尾是不是1(与1相与),若为1计数加一,然后把数字右移一位,不断重复,直至为零。 会造成死循环,考虑负数的情况,右移后左边位补充1。 **虽然右移操作和除2等价,但 阅读全文
posted @ 2017-09-27 12:00 usj 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: 1 阅读全文
posted @ 2017-08-25 18:06 usj 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: 1.根据前序第一个为根节点; 2.然后在中序 阅读全文
posted @ 2017-08-25 16:00 usj 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 原数字符数组间够大,在原数组中替换,不开辟新的数组。 思路: 1.从前往后遇到空格就替换成“%20”。考虑到元素覆盖,要不断后移元素。 阅读全文
posted @ 2017-08-24 15:52 usj 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 容易想到但是不易实现的思路:二维矩阵划分成矩形,能够缩小区域,貌似是这个道理,但缩小后的区域 阅读全文
posted @ 2017-08-23 11:48 usj 阅读(263) 评论(0) 推荐(0) 编辑