二分查找
xiaxzhou
这个作者很懒,什么都没留下…
展开
-
【算法题】切割木材
切割木材原创 2017-05-21 16:59:46 · 13756 阅读 · 1 评论 -
【算法题】星际穿越
航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗?原创 2017-06-08 16:33:36 · 499 阅读 · 0 评论 -
【算法题】分田地
牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗? 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第一行包含两个整数原创 2017-06-03 22:21:14 · 777 阅读 · 0 评论 -
【剑指offer】题38:字数在数组中出现的次数
二分查找 上界 下界int GetLowBound(vector<int>& data, int left, int right, int k){ while (left+1<right) { int mid = left + ((right - left) >> 1); if (data[mid]>=k) {原创 2017-07-04 20:50:28 · 235 阅读 · 0 评论 -
【算法题】数组分段
清洁工:假设有m个房间,清洁每个房间耗时用一个数组表示,10、20、30、40、50、60、70、80、90,安排n个清洁工,将连续的房间分成n份,每部分耗时求和,其最大值为此种分法的总耗时。求最快的耗时是多少。例如3个清洁工的话,10 20 30 40 50 | 60 70 | 80 90,此时是最快的,耗时为170。 题目:给定一个数组,和一个值k,数组分成k段。要求这k段子段和最大值原创 2017-07-30 11:00:24 · 3927 阅读 · 0 评论 -
【算法题】查找旋转数组的值
在一个排序的数组中,如{1,2,3,4,5,6,7},经过旋转后得到{4,5,6,7,1,2,3},当然也可以得到原数组{1,2,3,4,5,6,7},在该旋转后的数组中查找某个元素。陷阱在于数组不是严格递增的比如{1,1,1,1,0,1,1}这样有很多重复的元素的数组时,当要查找0时,在mid位置的元素为1,不能判断怎么缩小范围#include <iostream>#include <strin原创 2017-08-20 20:28:01 · 611 阅读 · 0 评论 -
【算法题】2018今日头条编程题一
维持一个当前边界点的数组,按x从小到达排序,由于是边界点,故其y对应是从大到小排序的。对于一个新加入的点,分别按x和y坐标值二分查找其在边界点数组中的位置:iter_x , iter_y若iter_x == iter_y: 则直接插入新边界点若iter_x < iter_y : 非边界点若iter_x>iter_y: 删除iter_x 与iter_y之间的无效边界点,并插入新边界点#原创 2017-08-23 11:47:34 · 1119 阅读 · 1 评论 -
【算法题】两有序数组中位数
有两个排序的数组,长度都为n,求合并后的排序数组的中位数。要求时间复杂度为log(n)。解法1:直接的解法是遍历两个数组并计数,类似归并排序里面的有序数组的合并,复杂度为O(n)解法2:分治策略:设两个数组为A[n],B[n]。 若A[n/2] < B[n/2]:中位数k必定位于A[n/2]-A[n]、B[0]-B[n/2]。且k也是两个数组A[n/2]-A[n]、B[0]-B[n/2]的中位数原创 2017-08-27 17:08:52 · 509 阅读 · 0 评论 -
【算法题】触宝2018编程题二
在平面上有N个点,他们有各自的速度向量。现在我们给出时刻0时他们的位置由于速度不变,所以解函数是个凹函数,凹函数的梯度是左边小于0,右边大于0。可以根据梯度,使用二分查找梯度为0 的位置。题目没有限制t的范围,注意初始查找的区域设定:不能太大,如果太大,会造成计算距离溢出,而且会计算过程中会发生精度丢失,导致梯度计算错误。不能太小,如果太小,区域很可能没有包含解的位置试了半天,99999999999原创 2017-09-08 15:40:51 · 948 阅读 · 0 评论