摘要: 二分查找的一个经典例子 非递减数列的二分查找 这个题,看起来很简单,可是仔细一看是含有重复值的非递减数组,那这个时候碰到target这个数字的时候就不能立刻返回了,那么这个时候需要继续在左半部分找更早出现的target。这个时候让end=mid-1, 并且把终止条件变成start<=end,这样如果 阅读全文
posted @ 2016-10-31 01:48 萝卜er 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. 阅读全文
posted @ 2016-10-30 01:37 萝卜er 阅读(99) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-10-29 23:41 萝卜er 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:1.如果给定节点有右子树,那么右子树上面的最左节点就是他中序遍历的后一个节点 2.如果一个节点是一棵树的左子树,那么他的下一个就是他的父节点 3.如 阅读全文
posted @ 2016-10-02 03:25 萝卜er 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 正常思路:用一个bit 阅读全文
posted @ 2016-10-01 23:52 萝卜er 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:只能是位运算。 按位与,得到的结果就是两个数字都为1的位置,按位与得到的结果 再左移一位,就是进位进上去的那些数 在 按位异或, 0 1,1 0,得到1,0 0得到0.和加法的结果一致,1 1得到0,相当 阅读全文
posted @ 2016-10-01 16:57 萝卜er 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 阅读全文
posted @ 2016-10-01 03:17 萝卜er 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 这个题是另一个题的进化版本 一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这这个只出现一次的数字。 这个题只需要从0开始 从头到尾异或一遍,最后的结果就是那个数字(原理,0异 阅读全文
posted @ 2016-10-01 01:10 萝卜er 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:看到这道题思路是有的,构造一个函数,输入一个节点,通过左右孩子节点返回的深度,判断左右孩子的深度是否满足相差不超过一,并且左右孩子都是平衡二叉树,则把左右孩子较深的那个加一返回。 可是并不太明白如和返回两个返回值。 后来看了解析才明白, 阅读全文
posted @ 2016-09-30 15:54 萝卜er 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个链表,找出它们的第一个公共结点。 这个题本来是不准备发博客的,因为太简单了... 思路一:大致思路是先分别求出他们的长度,然后让长的先走差值步数。然后长的短的一起走,第一次相遇的节点就是结果 上代码 /* public class ListNode { int val; ListN 阅读全文
posted @ 2016-09-29 04:41 萝卜er 阅读(169) 评论(0) 推荐(0) 编辑