AcWing 69:数组中数值和下标相等的元素 ← 二分

【题目来源】
https://www.acwing.com/problem/content/65/

【题目描述】
假设一个
单调递增的数组里的每个元素都是整数并且是唯一的。
请编程实现一个函数找出数组中任意一个数值等于其下标的元素。
例如,在数组 [−3,−1,1,3,5] 中,数字 3 和它的下标相等。

【输入样例】
-3 -1 1 3 5

【输出样例】
3
注意:如果不存在,则返回-1。

【数据范围】
数组长度 [1,100]。

【算法代码】

#include 
using namespace std;

int getIndex(vector& v) {
    int le=0;
    int ri=v.size()-1;
    while(le>1;
        if(v[mid]>=mid) ri=mid;
        else le=mid+1;
    }
    if(v[le]==le) return le;
    else return -1;
}

int main() {
    vector v;
    int x;
    while(cin>>x) {
        v.push_back(x);
    }
    cout<




【参考文献】
https://www.acwing.com/solution/content/43765/


 

你可能感兴趣的:(信息学竞赛,#,分治算法,二分法)