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

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

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

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param nums int整型一维数组
 * @param k int整型
 * @return int整型
 */
func GetNumberOfK( nums []int ,  k int ) int {
    pos := -1
    l,r := 0, len(nums) -1
    for l <= r {
        mid := l + (r - l)/2
        if nums[mid] == k {
            pos = mid
            break
        } else if nums[mid] > k {
            r = mid - 1
        } else {
            l = mid + 1
        }
    }
    if pos == -1 {
        return 0
    }
    cnt := 1
    l, r = pos -1, pos +1
    for ;r < len(nums); r++ {
        if nums[r] != k {
            break
        } else {
            cnt++
        }
    }
    for ;l >= 0; l-- {
        if nums[l] != k {
            break
        } else {
            cnt++
        }
    }
    return cnt
}

全部评论

相关推荐

牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
07-04 21:23
已编辑
东莞城市学院 后端
秋招和春招只收到几个中大厂的笔试,本人比较菜,感觉大厂的笔试太难,算法题不能全部做出来就没过了,但是CVTE和小天才的感觉不是很难,基本上都做出来了,笔试还是挂了。Boss上投了Java后端开发都没有回音,boss上有面试机会都是C#工控软件开发方向的,但是这个方向不太懂,资料又少,面试的表现有点差,现在还是想看看Java这边,面试的时候比较有把握点。想请教一下,这份简历还有什么问题,一直没什么机会,还有什么地方要修改的。
程序员小白条:学历太差,民办和公办,外包还得区分的,这个学历+这个简历,没的办法,除非你有人脉,太难了,这环境,何况你都毕业了,连一段实习都没,肯定没公司会挑选了,没竞争力,开发才招几个人,跟你竞争的可不是二本,三本的人哦,何况你在二本,三本里面也排名不高
投递小天才等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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