🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 在给定的数组中找到一个固定点(等于索引的值) > 原文: [https://www.geeksforgeeks.org/find-a-fixed-point-in-a-given-array/](https://www.geeksforgeeks.org/find-a-fixed-point-in-a-given-array/) 给定一个由 n 个不同的整数组成的数组,这些数组按升序排序,如果数组中存在固定点,则编写一个返回固定点的函数,否则返回-1。 数组中的不动点是索引 i,因此 arr [i]等于 i。 请注意,数组中的整数可以为负数。 例子: ``` Input: arr[] = {-10, -5, 0, 3, 7} Output: 3 // arr[3] == 3 Input: arr[] = {0, 2, 5, 8, 17} Output: 0 // arr[0] == 0 Input: arr[] = {-10, -5, 3, 4, 7, 9} Output: -1 // No Fixed Point ``` **方法 1(线性搜索)** 线性搜索索引 i,以使 arr [i] == i。 返回找到的第一个这样的索引。 感谢 pm 建议这种解决方案。 ## C++ ```cpp // C++ program to check fixed point  // in an array using linear search  #include <bits/stdc++.h> using namespace std; int linearSearch(int arr[], int n)  {      int i;      for(i = 0; i < n; i++)      {          if(arr[i] == i)              return i;      }      /* If no fixed point present then return -1 */     return -1;  }  /* Driver code */ int main()  {      int arr[] = {-10, -1, 0, 3, 10, 11, 30, 50, 100};      int n = sizeof(arr)/sizeof(arr[0]);      cout << "Fixed Point is " << linearSearch(arr, n);      return 0;  }  // This is code is contributed by rathbhupendra ```