查找第一个重复元素的位置代码:
public int search (int[] nums, int target) {
if(nums.length == 0) {
return -1;
}
int begin = 0;
int end = nums.length - 1;
while(begin < end) {
int mid = (begin + end) / 2;
if(nums[mid] < target) {
begin = mid + 1;
} else {
end = mid;
}
}
return nums[begin] == target ? begin : -1;
}
查找重复元素最后一个位置的代码:(这段代码是在目标值存在的前提下)
public int searchLast(int[] nums,int target) {
int begin = 0;
int end = nums.length-1;
while(begin + 1 < end) {
int mid = (begin + end) / 2;
if(nums[mid] > target) {
end = mid;
} else {
begin = mid;
}
}
return nums[end] == target ? end: begin;
}
因篇幅问题不能全部显示,请点此查看更多更全内容