統(tǒng)計一個數字在排序數組中出現的次數。
IDEA
1.簡單粗暴,遍歷
2.排序數組->數組元素有序->二分查找到這個數字,然后依次上前向后查找出最前一個和最后一個相同元素(因為數組是排序數組,是有序的,這個數字在該數組中連續(xù)出現)
CODE
1.
public class Solution { public int GetNumberOfK(int [] array , int k) { int count=0; for(int i=0;i<array.length;i++){ if(array[i]==k){ count++; } } return count; }}2.public class Solution { public int GetNumberOfK(int [] array , int k) { if(array.length==0||array==null){ return 0; } int low=0,high=array.length-1; int index=-1; while(low<=high){ int mid=(low+high)>>1; if(array[mid]==k){ index=mid; break; }else if(array[mid]>k){ high=mid-1; }else{ low=mid+1; } } if(index==-1){ return 0; } low=index-1; high=index+1; while(low>=0&&array[low]==k){ low--; } while(high<array.length&&array[high]==k){ high++; } return high-low-1; }}
新聞熱點
疑難解答