<#meta itemprop="name" content="Neo's Blog"> 二分系列-找数值等于下标的元素 Posted on 2021-01-03 Edited on 2022-03-01 In 数据结构与算法 Valine: 假设一个单调递增的数组里的每个元素都是整数并且是唯一的。 请编程实现一个函数找出数组中任意一个数值等于其下标的元素。 例如,在数组[-3, -1, 1, 3, 5]中,数字3和它的下标相等。 样例输入:[-3, -1, 1, 3, 5] 输出:3注意:如果不存在,则返回-1。 12345678910111213141516171819202122class Solution {public: int getNumberSameAsIndex(vector<int>& nums) { int l = 0, r = nums.size(); while (l < r) { int mid = l + r >> 1; if (nums[mid] >= mid) { r = mid; } else { //[mid + 1, r] 都不可能满足满足;因为递增 l = mid + 1; } } if (nums[r] != r) { return -1; } else { return r; } }}; Recommended Posts 二分系列-旋转数组找最值 二分系列-数字在排序数组中出现的次数 二叉树遍历系列-最低公共祖先 网络-traceroute 你的支持是我坚持的最大动力! Donate WeChat Pay Alipay