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

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

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

题解

题目

给定一个长度为n的非降序数组和一个非负数整数k,要求统计k在数组中出现的次数 数据范围:0≤n≤1000 , 0≤k≤1000,数组中每个元素的值满足0≤val≤1000

要求:空间复杂度 O(1)O(1),时间复杂度 O(logn)O(logn)

思路

首先是判断数组是否为空,k是否小于0以及k是否大于数组的最后一个数,满足三者其中一个,都直接返回0;不满足则遍历这个数据,一旦数组某个元素等于k,则num自增,一旦数组某个元素大于k,直接break,跳出循环,因为这个数组有个特性是它是非降序数组,结果就是num。

代码

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int len = array.length; 
        int num =0;
        if(len <= 0 || k<0 || k>array[len-1]){
            return num;
        }else{
            for(int i=0;i<len;i++){
                if(array[i] == k){
                    num++;
                }else if(array[i]>k){
                    break;
                }
            }
            return num;
        }
    }
}
全部评论

相关推荐

2024-12-23 10:55
已编辑
大连理工大学 Java
牛客930504082号:华子综测不好好填会挂的,而且填的时候要偏向牛马选项
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务