博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 数字在排序数组中出现的次数
阅读量:4691 次
发布时间:2019-06-09

本文共 1019 字,大约阅读时间需要 3 分钟。

题目描述

统计一个数字在排序数组中出现的次数。

 

思路:看到排序数组,首先考虑二分查找。我们找到数字在排序数组中最先出现和最后出现的下标,即得到次数。

1 class Solution { 2 public: 3     int GetNumberOfK(vector
data ,int k) { 4 int len = data.size(); 5 int left = 0, right = len - 1, l, r; 6 int mid; 7 // 先找最左边的index,如果data[mid] == k,我们也将right = mid - 1, 8 // 因为我们只要最左边的index,下面找最右边的index也是同理。 9 while (left <= right) {10 mid = (right - left) / 2 + left;11 if (data[mid] >= k) {12 right = mid - 1;13 } else {14 left = mid + 1;15 }16 }17 l = left;18 right = len - 1;19 while (left <= right) {20 mid = (right - left) / 2 + left;21 if (data[mid] <= k) {22 left = mid + 1;23 } else {24 right = mid - 1;25 } 26 }27 r = right;28 return (r - l + 1);29 }30 };

 

转载于:https://www.cnblogs.com/qinduanyinghua/p/10643351.html

你可能感兴趣的文章
使用Siege进行WEB压力测试
查看>>
斑马为什么有条纹?
查看>>
android多层树形结构列表学习笔记
查看>>
Android_去掉EditText控件周围橙色高亮区域
查看>>
《构建之法》第一、二、十六章阅读笔记
查看>>
arrow:让Python的日期与时间变的更好
查看>>
(转)Excel的 OleDb 连接串的格式(连接Excel 2003-2013)
查看>>
Java并发编程
查看>>
Git Stash用法
查看>>
sql server 2008学习8 sql server存储和索引结构
查看>>
Jquery radio选中
查看>>
postgressql数据库中limit offset使用
查看>>
测试思想-集成测试 关于接口测试 Part 2
查看>>
windows下mysql密码忘了怎么办?【转】
查看>>
php生成器使用总结
查看>>
T-SQL中的indexof函数
查看>>
javascript基础之数组(Array)对象
查看>>
mysql DML DDL DCL
查看>>
RAMPS1.4 3d打印控制板接线与测试1
查看>>
python with语句中的变量有作用域吗?
查看>>