算法
凌空飞翔
这个作者很懒,什么都没留下…
展开
-
google面试题之不构造树的情况下验证先序遍历
题目如下所示:给出一个字符序列,问该序列是否是一棵合法的二叉树的先序遍历? 找到一种不需要构造二叉树的方法。 For example: "9,3,4,#,#,1,#,#,2,#,6,#,#" 是下面这颗二叉树的先序遍历。其中#代表空节点。 代码一如下:(合法的二叉树中叶子节点后跟两个空节点(#),去掉叶子节点后的二叉树仍然为合法的二叉树,因此将叶子节点替换为空节点,判断最后剩下的节点原创 2016-06-24 10:13:39 · 416 阅读 · 0 评论 -
google面试题之摆动排序
题目如下:给出一个整数数组nums,重新排列nums使得nums[0] < nums[1] > nums[2] < nums[3]… Example: nums = [1, 5, 1, 1, 6, 4], 一个可能的答案是[1, 4, 1, 5, 1, 6] 数据保证必定有解。代码思路:先给数组排序,然后找到位于数组中间的数,相当于把有序数组从中间分成两部分,然后从前半段的末尾取一个,在从后半原创 2016-06-28 11:49:33 · 372 阅读 · 0 评论 -
google面试题之数组补丁
题目如下:给出一个从小到大排好序的整数数组nums和一个整数n,在数组中添加若干个补丁(元素)使得[1,n]的区间内的所有数都可以表示成nums中若干个数的和。返回最少需要添加的补丁个数。 Example 1: nums = [1, 3], n = 6 返回1,表示至少需要添加1个数{2},才可以表示1到6之间所有数。 Example 2: nums = [1, 5, 10], n =原创 2016-06-23 16:09:07 · 588 阅读 · 0 评论