题解 | 数字在升序数组中出现的次数

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

https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @param k int整型 
     * @return int整型
     */
    public int GetNumberOfK (int[] nums, int k) {
        // write code here
        return binarySearch(nums,k+0.5)-binarySearch(nums,k-0.5);
        
        
    }

    public int binarySearch(int[] nums,double k){
        int left=0;
        int right=nums.length-1;
        int mid=0;

        while(left<=right){
            mid=(left+right)/2;
            if(nums[mid]==k) return mid;
            if(nums[mid]<k){
                left=mid+1;
            }else
                right=mid-1;
        }

        return left;
    }
}

使用二分查找的方法来解决这个问题。构造了两个数字,一个比原数字大0.5,一个比原数字小0.5。

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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