给一个升序数组,找到 target 最后一次出现的位置,如果没出现过返回 -1
样例
样例 1:
输入:nums = [1,2,2,4,5,5], target = 2
输出:2
样例 2:
输入:nums = [1,2,2,4,5,5], target = 6
输出:-1
class Solution {
public:
/**
* @param nums: An integer array sorted in ascending order
* @param target: An integer
* @return: An integer
*/
int lastPosition(vector<int> &nums, int target) {
// write your code here
if(nums.size()==0) return -1;
int start=0;
int end=nums.size()-1;
if(nums[start]>target||nums[end]<target) return -1;
while(start<end-1)
{
int mid=start+(end-start)/2;
if(nums[mid]==target) start=mid;
else if(nums[mid]>target) end=mid;
else start=mid;
}
if(nums[end]==target) return end;
else if(nums[start]==target) return start;
return -1;
}
};```