剑指Offer - 数字在排序数组中出现的次数
https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId=13&tqId=11190&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
统计一个数字在排序数组中出现的次数。
class Solution { int findK(vector<int> &data ,int k) { int first = 0; int last = data.size() - 1; while (first <= last) { int mid = first + (last - first) / 2; if (data[mid] == k) return mid; else if (data[mid] < k) first = mid + 1; else last = mid - 1; } return -1; } public: int GetNumberOfK(vector<int> data ,int k) { if (data.size() == 0) return 0; int idx = findK(data, k); if (idx == -1) return 0; int first = idx, last = idx; while (first >= 0 && data[first] == data[idx]) first--; while (last < data.size() && data[last] == data[idx]) last++; return last - first -1; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2017-02-13 跟风记录一个知乎热门讨论-腾讯/阿里/百度哪个部门最值得加入
2017-02-13 Storm同时接收多个源(spout和bolt)
2017-02-13 各种流处理系统的比较
2017-02-13 Kafka学习
2017-02-13 关联规则推荐及Apriori算法