首页 > 学院 > 开发设计 > 正文

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

2019-11-10 20:34:08
字体:
来源:转载
供稿:网友

统计一个数字在排序数组中出现的次数。

IDEA

1.简单粗暴,遍历

2.排序数组->数组元素有序->二分查找到这个数字,然后依次上前向后查找出最前一个和最后一个相同元素(因为数组是排序数组,是有序的,这个数字在该数组中连续出现)

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;    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表