1 /* 2 入门之二分查找 3 时间复杂度:O(logn) 4 只能查找已排序好的数组 5 通过不断比较中间值,确定keyword在中间值的左边或右边,直到找到或结束 6 */ 7 #include 8 using namespace std; 9 int a[] = {1,2,3,4,5,6,7... ...
分类:
其他好文 时间:
2017-07-22 19:54:53
阅读次数:
196
记节点v到根点的深度为depth[v],那么当w是v和u的最近公共祖先时,可以想让v和u在同一个深度,即让深度高的走|depth[v]-depth[u]|然后一起走, 直到遇见相同的祖先时就是最近公共祖先了。如果是计算一次的话还可以,但有很多询问时就不行了。 那么可以利用父亲节点的信息来做了,可以通 ...
分类:
其他好文 时间:
2017-07-22 13:20:32
阅读次数:
227
1 /* 2 对于数组的每个元素,找到它右边的第一个比它大的元素 3 根据数组元素内容建立索引,有序记录a的每个值的所有出现的位置,然后对于每个a, 4 遍历所有大于a的可能的值,每个值用二分搜索找到当前位置右边的最小的出现位置, 5 (直接遍历会超时) 6 然后这些位置中取最小值即为结果所在的位置... ...
分类:
其他好文 时间:
2017-07-21 00:02:13
阅读次数:
232
算法1:时间复杂度:O(n^2):我们依次遍历整个序列,每一次求出从第一个数到当前这个数的最长上升子序列,直至遍历到最后一个数字为止,然后再取dp数组里最大的那个即为整个序列的最长上升子序列。我们用dp[i]来存放序列1-i的最长上升子序列的长度,那么dp[i]=max(dp[j])+1,(j∈[1 ...
分类:
其他好文 时间:
2017-07-16 20:13:04
阅读次数:
123
允许数组长度为0 new element[0] 数组长度为0与null不同 数组拷贝 允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组: int[] ele1 = ele2; ele1[5] = 12; //now ele2[5] is also 12 如果希望将一个数组的所有 ...
分类:
编程语言 时间:
2017-07-12 00:56:52
阅读次数:
152
///3.最大化最小值 /** POJ 2456 Aggressive cows Q:一排牛舍有N (2 求满足条件的最大d->如何高效的判断C(x) */ #include"iostream" #include "cstdio" #include "algorithm" using namespa... ...
分类:
其他好文 时间:
2017-07-08 17:46:32
阅读次数:
189
///2.假定一个解并判断是否可行 ///POJ1064 /** Q:有N条绳子,长度分别为Li,从中切割出k条长度相同的绳子, 这K条绳子最长能有多长?保留两位小数 A: 二分搜索模型。 条件C(x):=可以得到K条长度为x的绳子 问题转变为 求满足C(x)的最大x;lb=0 ub=INF 问题转... ...
分类:
其他好文 时间:
2017-07-08 16:56:41
阅读次数:
221
1082: [SCOI2005]栅栏 Description 农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材。于是农夫约翰到木材店购 买木材。可是木材店老板说他这里只剩下少部分大规格的木板了。不过约翰可以购买这些木板,然后切割成他所需 要的规格。而且约翰有一把神奇的锯子,用 ...
分类:
其他好文 时间:
2017-07-07 19:51:38
阅读次数:
196
problem: Implement pow(x, n). Hide Tags Math Binary Search 题意:求x的n次幂 </form> thinking: (1)最简单想到的是直观上的数学幂函数求法,測试通过。算法时间复杂度为O(n) (2)依照标签提示,使用二分搜索法。pow(x ...
分类:
其他好文 时间:
2017-07-01 20:05:21
阅读次数:
133
Arrays类的binarySearch()方法,可以使用二分搜索法来搜索指定的数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供多种重载形式,用于满足各种类型数组的查找需要。 1) binarySearch(Object[], Object key) a: 要 ...
分类:
编程语言 时间:
2017-06-18 00:08:20
阅读次数:
337