
二分查找
二分查找
ych9527
这个作者很懒,什么都没留下…
展开
-
搜索旋转排序数组
1. 搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。题目链接class Solution {public: int search(vector<int>& nums, int target) {原创 2021-05-03 16:16:27 · 220 阅读 · 0 评论 -
二分查找的几种用法
文章目录前言第一题第二题第三题前言一般我们看到关键字有序数组,查找某个值都要下意思的往二分查找上面去想;当然遍历双指针也是经常用的办法,不过暴力遍历还是别了吧,虽然能解题,到时候offer就遍历走了;下面分享几道剑指offer上面的题目第一题把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 链接: link.思路分析:原创 2020-12-15 22:45:43 · 474 阅读 · 0 评论 -
给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。
今天继续分享一个比较有意思的二分查找题目:题目:给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1 题目链接: link.思路分析:山脉数组,根据题意即是一个左升右降的数组,二分查找的条件是数组是有序的,因此我们需要找到数组的山脉的至高点即数组的最大数,很显然我们可以利用二分查找来完成这个动作。设左边界为left,右边界为right,中间点为mi原创 2020-12-16 21:15:07 · 361 阅读 · 0 评论