由于是满二叉树,用数组既可以表示父节点是i,则左孩子是2*i,右孩子是2*i+1另外根据二分搜索树的性质,中序遍历恰好是从小到大排序因此先中序遍历填充节点对应的值,然后再层次遍历输出即可。 又是一道遍历的水题。。。 #include <iostream> #include <cstdio> #inc ...
分类:
其他好文 时间:
2017-03-02 12:58:39
阅读次数:
162
今天是03/01.说实话,我个人非常讨厌二分搜索的题目,原因在于变种的二分搜索总是要理清楚不同情况下的+1,-1 事实上我觉得我可能从来没有愿意去弄清楚,所以在处理这种题目的时候,我一般都很随缘。 描述: Suppose an array sorted in ascending order is r ...
分类:
其他好文 时间:
2017-03-01 21:25:21
阅读次数:
257
二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。 1.从有序数组中查找某个值 STL以lower_bound函数的形式实现了二分搜索。类似方法还有upper_bound 2.假定一个解并判断是否可行 注意输出答案的格式 3.最大化最小值 找到最大的d使得最近的两头牛的距离不小于 ...
分类:
其他好文 时间:
2017-02-28 18:07:26
阅读次数:
206
Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST. Assume a BST is define ...
分类:
其他好文 时间:
2017-02-23 23:56:14
阅读次数:
352
算法复杂度为while循环的个数 缺点是待查表为有序表 也可以用递归的 望多多指教 ...
分类:
其他好文 时间:
2017-01-24 23:54:59
阅读次数:
386
1.List.BinarySearch():BinarySearch()采用的是二分搜索算法,要求元素已经排好序,其特点是假如元素没有找到,会返回一个负整数,该值的按位取反(~)结果是“大于被查找元素的下一个元素”的索引,如果没有更大的值,则是元素的总数。这样一来就可以在列表中的特定位置方便地插入新 ...
二分搜索分两类,一类可以直接看出来是二分搜索 另一类很难直接看出来是二分搜索, 最重要的是理解二分搜索的思想, 根据有序集合这个特性,每次通过O(1)的时间复杂度 ,使得搜索的规模减半, 同红黑树查找类似(红黑树也是在增加了空间复杂度的情况下,减少了时间复杂度,每次比较,然后就会使得搜索规模减半) ...
分类:
编程语言 时间:
2017-01-21 19:36:42
阅读次数:
372
原题:http://www.luogu.org/problem/show?pid=1462#sub 4boy: 大意:给出n个城市,有m条路,每经过一个城市都要交钱,每经过一条道路都要扣HP,有HP上限;要从1走到n, 求在HP没扣完的情况下,从1到n经过城市的最大花费的最小值。 思路:用二分搜索c ...
分类:
其他好文 时间:
2016-09-29 13:46:48
阅读次数:
316
题意: Implement int sqrt(int x). Compute and return the square root of x.(Medium) 分析: 二分搜索套路题,不能开方开尽的时候,取结果整数位。 注意:判定条件中,用x / mid == mid而不是 mid * mid == ...
分类:
其他好文 时间:
2016-09-22 01:07:30
阅读次数:
172
1 Search in Rotated Sorted Array 二分搜索,注意分清各种情况 1 public class Solution { 2 public int search(int[] nums, int target) { 3 int i = 0, j = nums.length - ...
分类:
其他好文 时间:
2016-09-16 07:53:35
阅读次数:
191