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

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

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) {
        if(nums.length==0) return 0;
        // write code here
        int a=0;
        int b=nums.length-1;
        if(nums[b]<k||nums[a]>k) return 0;
        while(a!=b){
            int min=(a+b)/2;
            if(min==a||min==b) break;
            System.out.println(a);
            if(nums[min]>k){
                b=min;
            }
            else if(nums[min]<k)
                a=min;
            else break;
            }
        
        while(nums[a]!=k||nums[b]!=k){
            if(nums[a]!=k) a++;
            if(nums[b]!=k) b--;
            if(a>b) break;
        }
        if(b-a+1>0) return b-a+1;
        else return 0;
        }
        
    }

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务