LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
生活随笔
收集整理的這篇文章主要介紹了
LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
劍指 Offer 53 - I. 在排序數組中查找數字 I
思路一:二分單邊 + 線性掃描
先用一次二分查找找到邊界,再再邊界里面尋找目標值
class Solution { public:int search(vector<int>& nums, int target) {int low=0;int high=nums.size()-1;int res=0;//判斷只有一個數的情況// if(nums.size()==1){// if(nums[0]==target){// res++;// return res;// }// }//二分查找找到目標值所在的邊界while(low<=high){int mid = (low+high)/2;if(nums[mid]<target){low = mid+1;}else if(nums[mid]>target){high = mid-1;}else {break;}}//在邊界里面尋找目標值for(int i=low;i<=high;i++){if(nums[i]==target){res++;}}return res;} };思路二:兩次二分查找,找到左右邊界,最終結果為right-left-1
總結
以上是生活随笔為你收集整理的LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode-字符串-反转字符串中的
- 下一篇: LeetCode-剑指 Offer 50