本文主要是介绍leetcode34_排序数组第一个和最后一个,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public int[] searchRange(int[] nums, int target) {
int[] ans = {-1,-1};
if(nums.length == 0) return ans;
else if(nums.length == 1) {
if(nums[0] == target) {
ans[0] = 0;
ans[1] = 0;
return ans;
}
}
if (nums.length < 2) return ans;
int l = 0, r = nums.length-1;
while (l < r) {
int mid = l + r>> 1;
// 找到第一个大于等于target的数字
if(nums[mid] >= target) r = mid;
else l = mid + 1;
}
if(nums[l] == target) ans[0] = l;
l = 0;
r = nums.length ;
while (l < r) {
int mid = l + r >> 1;
// 找到第一个大于target的数字
if(nums[mid] > target) r = mid;
else l= mid + 1;
}
System.out.println(l + ":" + r);
l --;
if(0 <= l && l < nums.length) {
if(nums[l] == target) ans[1] = l;
}
return ans;
}
这篇关于leetcode34_排序数组第一个和最后一个的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!