package array;
/**
* ç»å®ä¸ä¸ªå·²ç»ååºæåºçæ´å½¢æ°ç»ï¼æ¾åºç»å®ç®æ å¼çå¼å§ä½ç½®åç»æä½ç½®ã
ä½ çç®æ³æ¶é´å¤æåº¦å¿
é¡»æ¯ O(log n) 级å«ã
妿卿°ç»ä¸æ¾ä¸å°ç®æ ï¼è¿å [-1, -1]ã
ä¾å¦:
ç»åº [5, 7, 7, 8, 8, 10] åç®æ å¼ 8ï¼
è¿å [3, 4]ã
* Created by Administrator on 2018/3/30 0030.
*/
public class searchRange {
public int[] searchRange(int[] nums, int target) {
int[] result=new int[2];
int size=nums.length;
int low=0;int height=size-1;
int middle=(height-low)/2;
int resultLow=-1;
int resultHigh=-1;
boolean flag=false;
while(low<=height){
if(nums[middle]==target) {
flag=true;
break;
}
else if(nums[middle]>target){
height=middle-1;
}
else low=middle+1;
middle=(height+low)/2;
}
if(flag==true){
resultLow=middle;
resultHigh=middle;
int i=middle;
int j=middle;
while (i>=1&&nums[--i]==nums[middle]){
resultLow=i;
}
while (j