数字在排序数组中的位置

数字在排序数组中出现的次数

http://www.nowcoder.com/questionTerminal/70610bf967994b22bb1c26f9ae901fa2

1. 先用二叉搜索找到结点的下标
2. 如果找到就从这个下标开始往左右搜索。
3. 否则返回找不到。


import java.util.Arrays; public class Solution {     public int GetNumberOfK(int [] array , int k) {         int index = binSearch(array,k);         if(index<0) return 0;         int sum=1;         for(int i=index-1;i>=0;i--){             if(array[i] == k) sum++;         }         for(int i=index+1;i<array.length;i++){             if(array[i] == k) sum++;         }         return sum;     }          int binSearch(int[] a, int k){         int hi=a.length-1;         int lo=0;         while(lo <= hi){            int mid = (hi+lo) >>> 1;             if(a[mid] == k){                 return mid;             }else if(a[mid] > k){                 hi = mid-1;             }else {                 lo = mid+1;             }         }         return -1;     } }

全部评论

相关推荐

在投简历的柠檬精很想...:可以明确说,问的东西几乎是简历上的东西。你写的确实有点模糊。面试可能会问你一些常用的通信的问题,差分信号走线之类的,单片机最小系统啥的,模电,数电,基本电源,buck,boost,ldo之类的吧。
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务