09 2016 档案

摘要:能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。 阅读全文
posted @ 2016-09-08 10:15 樱圃 阅读(157) 评论(0) 推荐(0)
摘要:给定一个十进制数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有”1“的个数。 例如N=2,写下1,2。这样只出现了1个”1“. 阅读全文
posted @ 2016-09-08 09:31 樱圃 阅读(171) 评论(0) 推荐(0)
摘要:ArrayList> arrayList = new ArrayList(); ArrayList list = new ArrayList(); public ArrayList> FindPath(TreeNode root,int target) { if(root == null) return arrayList; list.add(r... 阅读全文
posted @ 2016-09-07 10:31 樱圃 阅读(155) 评论(0) 推荐(0)
摘要:题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路:需要保存下一层需要打印的节点个数。 ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>> arrayL 阅读全文
posted @ 2016-09-02 22:13 樱圃 阅读(134) 评论(0) 推荐(0)
摘要:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 阅读全文
posted @ 2016-09-02 21:30 樱圃 阅读(121) 评论(0) 推荐(0)
摘要:题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路:此题包含三步: 1. 如果此节点有右子树,下一个节点为右子节点的最左边的节点。 2.如果此节点没有右子树,并且如果此节点是其父节点的左子节点,则下一 阅读全文
posted @ 2016-09-02 16:39 樱圃 阅读(640) 评论(0) 推荐(0)
摘要:题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路:在做这道题时,定义了前结点,当前结点和后一个节点。删除节点就是将要删除的节点赋予空值。 public List 阅读全文
posted @ 2016-09-02 16:00 樱圃 阅读(154) 评论(0) 推荐(0)
摘要:题目描述 一个链表中包含环,请找出该链表的环的入口结点。 思路: 具体思路可以参考网址:https://www.cnblogs.com/zhuzhenwei918/p/7491892.html 假设满指针速度v,经过t时间后,两个指针相遇,此时:w+y=v*t; 此时快指针速度为2*v,经过t时间后 阅读全文
posted @ 2016-09-02 15:10 樱圃 阅读(126) 评论(0) 推荐(0)
摘要:题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 思路:1.利用HashSe 阅读全文
posted @ 2016-09-02 15:10 樱圃 阅读(155) 评论(0) 推荐(0)
摘要:题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 输入例子: +2147483647 1a33 输出例子: 214 阅读全文
posted @ 2016-09-02 10:47 樱圃 阅读(225) 评论(0) 推荐(0)
摘要:题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:既然不能用四则运算符号,那么只能考虑用位运算符啦。考虑,如5+7=12,5为101,7为111,两者先做不加进位的运算,101+111=010,进位为1010(这一部分可以看成是101&111=101,然 阅读全文
posted @ 2016-09-02 09:48 樱圃 阅读(135) 评论(0) 推荐(0)
摘要:输入一个链表,从尾到头打印链表每个节点的值。 思路2:把节点存入到栈中,输出栈中的元素即可。 阅读全文
posted @ 2016-09-01 16:20 樱圃 阅读(126) 评论(0) 推荐(0)
摘要:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a stude 阅读全文
posted @ 2016-09-01 16:09 樱圃 阅读(117) 评论(0) 推荐(0)
摘要:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 思路:三 阅读全文
posted @ 2016-09-01 15:08 樱圃 阅读(117) 评论(0) 推荐(0)
摘要:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有 阅读全文
posted @ 2016-09-01 14:54 樱圃 阅读(152) 评论(0) 推荐(0)
摘要:题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。思路:两个数的和一定,差越小,乘积越大;差越大,乘积越小。 两个数的乘积一定,差越小,和越小。证明:已知x 阅读全文
posted @ 2016-09-01 13:37 樱圃 阅读(143) 评论(0) 推荐(0)
摘要:题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路:1. 如果一组数字中,只有一个数字出现一次,而其他数字都出现两次,要求那个只出现一次的数字时由于数字和他本身异或为0,且数字的异或性质同乘法一样,满足交换率,所以依次异或后,剩余的数值肯定是只出 阅读全文
posted @ 2016-09-01 10:46 樱圃 阅读(298) 评论(0) 推荐(0)
摘要:public boolean IsBalanced_Solution(TreeNode root) { if(root == null) return true; int left = getDepth(root.left); int right = getDepth(root.right); if(Math.abs(left-ri... 阅读全文
posted @ 2016-09-01 10:32 樱圃 阅读(153) 评论(0) 推荐(0)
摘要:public int TreeDepth(TreeNode pRoot) { if(pRoot == null) return 0; return Math.max(TreeDepth(pRoot.left),TreeDepth(pRoot.right))+1; } 阅读全文
posted @ 2016-09-01 09:45 樱圃 阅读(128) 评论(0) 推荐(0)