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

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

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;
        }
    }
}
全部评论

相关推荐

“校招”、“3-5年经验”
xiaolihuam...:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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