テーマ:34.ソート配列で要素を検索する最初の位置と最後の位置には、昇順に配列された整数配列numsと、ターゲット値targetが与えられます.配列内の所定のターゲット値の開始位置と終了位置を特定します.あなたのアルゴリズムの時間複雑度はO(log n)レベルでなければなりません.配列にターゲット値が存在しない場合は、[-1,-1]を返します. 例1:入力:nums=[5,7,7,8,8,10],target=8出力:[3,4]例2:入力:nums=[5,7,7,8,8,10],target=6出力:[-1,-1]考え方:コードの注釈を参照してくださいpublic int[] searchRange2(int[] nums, int target){
int s=find(nums,target);
if(s==nums.length||nums[s]!=target){
return new int[]{-1,-1};
}
int e=find(nums,target+1)-1;
if(e==nums.length||nums[e]!=target){
return new int[]{-1,-1};
}
return new int[]{s,e};
}
/*
*
* , target , target , ()target-1)
* , ~
* */
private int find(int[] nums, int target){
int s=0;
int e=nums.length;// nums.length-1 , , ~
while (s=target){
e=middle;
}else{
s=middle+1;
}
}
return s;
}