LeetCode 1064. 不动点(二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1064. 不动点(二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 暴力搜
- 2.2 二分查找
1. 題目
給定已經按升序排列、由不同整數組成的數組 A,返回滿足 A[i] == i 的最小索引 i。
如果不存在這樣的 i,返回 -1。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/fixed-point
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 暴力搜
class Solution { public:int fixedPoint(vector<int>& A) {for(int i = 0; i < A.size(); ++i){if(A[i] == i)return i;}return -1;} };2.2 二分查找
class Solution { public:int fixedPoint(vector<int>& A) {int l = 0, r = A.size() -1, mid, ans = INT_MAX;while(l <= r) {mid = (l + r)>>1;if(mid < A[mid])r = mid-1;else if(mid > A[mid])l = mid+1;else{ans = min(ans,mid);r = mid-1;}}return ans==INT_MAX ? -1 : ans;} };24 ms 10.7 MB
長按或掃碼關注我的公眾號,一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1064. 不动点(二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1084.
- 下一篇: LeetCode 370. 区间加法(差