解题方案:他来了,他带着最蠢的代码走来了
var searchRange = function(nums, target) {
if(nums.length==0){ // 特殊情况,数组为空
return [-1,-1];
}
if(nums.length==1){ // 特殊情况,数组只有一项
if(nums[0]==target){
return [0,0];
}else{
return [-1,-1];
}
}
let i=0,j=nums.length-1; // 二分查找
while(i<j){
if(nums[i]>target||nums[j]<target){ // 如果左指针大于目标值,或者右指针小于目标值了 直接返回
return [-1,-1]
}
if(nums[i]<target){
i++
}
if(nums[j]>target){
j--
}
if(nums[i]==target&&nums[j]==target){
return [i,j]
}
}
return [-1,-1]
};
看到的不讲码德的方案,哈哈哈哈哈:
var searchRange = function(nums, target) {
return [nums.indexOf(target),nums.lastIndexOf(target)]
};