由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 解决二分查找变体题的一种思路
相关主题
对facebook的印象极差请教大家一个算法的面试题目
一个题小结可以应用二分查找的面试题
G家phone interview经验,攒人品[算法]二分搜索变体
search in a rotated array原创出一道好的算法题并不容易
请教一道Google面试题fb被老印黑了 大家可以用这招以后黑老印。
谁给个数组分段题二分法的总结啊?来这里看一眼,觉得编程是不能再复习了
大家谈论算法时所说的“二分法”是不是就是所谓的binary search或是它的变形?关于index的问题
问一道careercup150上的题二维排序数组的查找正解是O(M+N)的复杂度吗
相关话题的讨论汇总
话题: 处理话题: 元素话题: 边界话题: while话题: low
进入JobHunting版参与讨论
1 (共1页)
j**l
发帖数: 2911
1
这里总结一下,对很多基本二分查找的变体题目,比如找rotated的有序数组的reset
point (pivot),比如返回相同元素的连续段的第一个或者最后一个,我们可以考虑如
下思路。
如果我们让while处理三个元素(含)以上的情形,边界情况的困难往往就被消除了
然后while外头处理两个元素或一个元素的情形是很容易的
while (high - low > 1)
{
// 处理至少三个元素,无需边界处理
}
// 处理至多两个元素
当然,我发过相关的帖子,如果你遇到固执的面试官,不理解你为何那样处理,非要
很隐晦地暗示你必须采用如下的传统处理(最适用基本二分查找,因为几乎没有边界处
理)
while (low <= high)
{
// 一堆容易出错的边界处理
}
那也只能顺其所好,考虑周全,好好把while里头各种边界情况写好吧。否则面完后被
拒不说,还被背地里扣上不能很好follow面试官的suggestion的帽子。
h**6
发帖数: 4160
2
有的时候,需要求最大满足条件 A 的数,或者最小满足不条件 A 的数。
首先,设定初始值,使得 low 一定满足条件 A ,high 一定满足不条件 A。
然后,根据 mid 是否满足条件 A ,调整 low 或者 high。
调整过程中,应始终保持 low 满足条件 A ,high 满足不条件 A。
当 high=low+1 时循环结束,根据题目要求返回 low 或者 high。
h**6
发帖数: 4160
3
题目举例:
把一个正整数数组,分成连续的 k 段,求每一段的和的最大值的最小值。
s*********t
发帖数: 1663
4
我记得好像有个题是让数组分K段,求最大值与最小值的差,使其最小
完全没思路

【在 h**6 的大作中提到】
: 题目举例:
: 把一个正整数数组,分成连续的 k 段,求每一段的和的最大值的最小值。

h**6
发帖数: 4160
5

这题有两种解法,可以使用 DP 法,也可以使用二分法。
DP 法:
设 dp[m][x] 表示把数组的前 m 项分成 x 段时,每段和的最大值的最小值。
时间复杂度为 O(n^2*k)
二分法:
设每一段和都不超过 s,求原数组是否能分成不超过 k 段。
时间复杂度为 O(32n),其中32是 int 位数,也是二分法最多需要进行的次数。

【在 h**6 的大作中提到】
: 题目举例:
: 把一个正整数数组,分成连续的 k 段,求每一段的和的最大值的最小值。

I**A
发帖数: 2345
6
啊,我题目都没看懂

【在 s*********t 的大作中提到】
: 我记得好像有个题是让数组分K段,求最大值与最小值的差,使其最小
: 完全没思路

I**A
发帖数: 2345
7
忘了赞一个。。

【在 j**l 的大作中提到】
: 这里总结一下,对很多基本二分查找的变体题目,比如找rotated的有序数组的reset
: point (pivot),比如返回相同元素的连续段的第一个或者最后一个,我们可以考虑如
: 下思路。
: 如果我们让while处理三个元素(含)以上的情形,边界情况的困难往往就被消除了
: 然后while外头处理两个元素或一个元素的情形是很容易的
: while (high - low > 1)
: {
: // 处理至少三个元素,无需边界处理
: }
: // 处理至多两个元素

K******g
发帖数: 1870
8
请问能把题目说清楚一下吗?“分成连续的k段”有很多种分法,然后要求的是不同分
法中每段的和的最大值的最小吗?

【在 h**6 的大作中提到】
: 题目举例:
: 把一个正整数数组,分成连续的 k 段,求每一段的和的最大值的最小值。

1 (共1页)
进入JobHunting版参与讨论
相关主题
二维排序数组的查找正解是O(M+N)的复杂度吗请教一道Google面试题
玛工的门槛就是要脑子灵活谁给个数组分段题二分法的总结啊?
binary search的更新和边界问题大家谈论算法时所说的“二分法”是不是就是所谓的binary search或是它的变形?
二分查找真的不容易写对问一道careercup150上的题
对facebook的印象极差请教大家一个算法的面试题目
一个题小结可以应用二分查找的面试题
G家phone interview经验,攒人品[算法]二分搜索变体
search in a rotated array原创出一道好的算法题并不容易
相关话题的讨论汇总
话题: 处理话题: 元素话题: 边界话题: while话题: low