二分查找
Wade_Gao
这个作者很懒,什么都没留下…
展开
-
LeetCode-4:寻找两个正序数组的中位数
一、题目描述二、解题思路 题目要求时间复杂度为O(log(m+n))O(log(m + n))O(log(m+n)),很明显需要采用二分法来解决。 如果我们可以在这两个有序序列中找到第KKK个数字,那么我们只要能找到中间的一个或两个数字,就一定可以得到这道题的解。 所以问题退化为寻找两个有序序列的按序第KKK个数字。 在寻找中间的数字的过程中,需要区分以下两个序列长度和为奇数偶数的区别:如果为奇数,那么中间的数字只有一个,那就是第(len1+len2+1)/2(len1 + len原创 2020-05-24 23:54:48 · 351 阅读 · 0 评论 -
LeetCode-33:搜索旋转排序数组
一、题目描述二、解题思路要求在O(logn)O(logn)O(logn)的时间复杂度内确定序列里是否存在这个数字,只能采用二分法从旋转的方式可以看出,是把较大的那一半放到前面来了,从而导致原序列区间有序,我们可以确定这个区间的分割点,然后在两个区间内二分查找。但是这样有个问题,二分查找需要保证原序列递增有序,那我们怎么判断传入的区间序列是否为区间有序?答案是比较区间首尾元素大小关系,如果...原创 2020-04-27 23:40:20 · 132 阅读 · 0 评论