Leetcode刷题 34.在排序数组中查找元素的第一个和最后一个位置
生活随笔
收集整理的這篇文章主要介紹了
Leetcode刷题 34.在排序数组中查找元素的第一个和最后一个位置
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解法1:
解法二(二分查找):
int lowBorder(vector<int> &nums, int target) {int left=0; //左界賦值int right=nums.size()-1; //右界賦值while(left<=right){int mid=left+(right-left)/2; //尋找中間值if(nums[mid]>=target) //中間值大于目標(biāo)值{right=mid-1; //重新對(duì)右界賦值}else{left=mid+1; //重新對(duì)左界賦值}}return left; //返回左值 }int highBorder(vector<int> &nums, int target) //查找結(jié)束位置{int left = 0; //左界為0int right = nums.size() - 1; //右界賦值while (left <= right){int mid = left + (right - left) / 2; //中間位置賦值if (nums[mid] > target) //如果中間位置大于目標(biāo)值{right = mid - 1; //重新對(duì)右界賦值}else{left = mid + 1; //否則重新對(duì)左界賦值}}return right; //返回右界值}public:vector<int> searchRange(vector<int> &nums, int target){// 答案數(shù)組vector<int> ans;// 排除臟數(shù)據(jù)if (nums.size() == 0){// 初始化就是0return {-1, -1};}int low = lowBorder(nums, target);int high = highBorder(nums, target);if (low > high){return {-1, -1};}return {low, high};}總結(jié)
以上是生活随笔為你收集整理的Leetcode刷题 34.在排序数组中查找元素的第一个和最后一个位置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坐飞机书包放哪
- 下一篇: Leetcode刷题 33.搜索旋转排序