假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。 思路:二分法 1、判断最小的数是否在第一个位置,若是则返回nums[0]; 2、否则,选取中间位置 mid 的数和 r ...
分类:
编程语言 时间:
2017-10-05 23:13:32
阅读次数:
290
文章来源:http://www.cnblogs.com/hyl2000/p/5734908.html NOIP中二分应该是很简单的算法了,去年noip的day2-t1就是裸的二分,这里有两个例题 1、poj2456:Farmer John has built a new long barn, wit ...
分类:
其他好文 时间:
2017-10-01 19:30:31
阅读次数:
230
先吐槽一下,我好气啊,想了很久硬是没有做出来,题目要求的时间复杂度为O(log(m+n)),我猜到了要用二分法,但是没有想到点子上去。然后上网搜了一下答案,感觉好有罪恶感。 题目原型 正确的思路是:把问题转化一下,假设任意给一个k值,求这两个数组合并并按大小排序之后的第k个值。如此一来求中位数只是一... ...
分类:
编程语言 时间:
2017-09-27 16:46:11
阅读次数:
200
Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 sqrt(4) = 2 sqrt(5) = 2 sqrt(10) = 3 sqrt(3) = 1 sqrt(4) = 2 s ...
分类:
其他好文 时间:
2017-09-26 13:35:28
阅读次数:
189
今天在lintCode又做了一道关于非常规二分法的使用,觉得还是有必要记录下来。 题意: 样例: 这个题看上去感觉好难的样子,但是实际上,这个题非常的简单,就是一个二分法定区间的题。这种题在这之前,我也写了两篇关于非常规二分法使用的博客,相对来说,还是比较类似的。 1.解题思路 首先,我们假设只有一 ...
分类:
编程语言 时间:
2017-09-25 20:48:30
阅读次数:
205
查找是在一批数据中查找指定的数据,如最值查找或指定值查找,查找结束后应该给出查找成功与否的结论. 目前常用的查找算法有顺序查找,二分法查找,hash查找、二叉排序树查找等 (1) 顺序查找 顺序查找指从数组的一端开始,顺序扫描数组中的每个元素,依次将扫描的数组元素和指定值相比较。若当前扫描的元素与指 ...
分类:
编程语言 时间:
2017-09-24 09:59:02
阅读次数:
337
题目链接:http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10552 Accepted: 3613 Description Farme ...
分类:
其他好文 时间:
2017-09-23 16:17:32
阅读次数:
182
Find the last position of a target number in a sorted array. Return -1 if target does not exist. Example Given [1, 2, 2, 4, 5, 5]. For target = 2, ret ...
分类:
其他好文 时间:
2017-09-22 10:07:13
阅读次数:
164
题目链接:http://poj.org/problem?id=3111 K Best Time Limit: 8000MS Memory Limit: 65536K Total Submissions: 11380 Accepted: 2935 Case Time Limit: 2000MS Spe ...
分类:
其他好文 时间:
2017-09-21 21:44:44
阅读次数:
160
这是一个《算法导论》上的练习,可将插入排序的总体运行时间降至Θ(nlgn),我们先看看插入排序的算法代码: 从代码可以看出,arr[j] > temp的判断查找是在前面所有小于 j 的部分中进行移动和查找的,而小于的 j 部分都是已经排好序的,因此我们可设计使用二分查找带进行更快速的处理。但我的尝试 ...
分类:
编程语言 时间:
2017-09-21 14:52:43
阅读次数:
133