剑指offer(34)-数字在排序数组中出现的次数
来源:互联网 发布:mac安装什么杀毒软件 编辑:程序博客网 时间:2024/06/06 02:03
题目描述
统计一个数字在排序数组中出现的次数。
代码
class Solution { /*二分查找 找到第一个K 和 最后一个K 二者位置相减*/public: int GetNumberOfK(vector<int> data ,int k) { if(data.empty()) return 0; int number = 0; int first = GetFirstIndex(data,k,0,data.size()-1); int last = GetLastIndex(data,k,0,data.size()-1); if(first>-1 && last>-1) number = last - first +1; return number; } int GetFirstIndex(vector<int> &data,int k,int start,int end){ if(start > end) return -1; int mid = (start+end)/2; if(data[mid] == k){ if((mid > 0 && data[mid-1] != k) || mid == 0) return mid; else end = mid-1; } else{ if(mid > k) end = mid - 1; else start = mid + 1; } return GetFirstIndex(data,k,start,end); } int GetLastIndex(vector<int> &data,int k,int start,int end){ if(start > end) return -1; int mid = (start+end)/2; if(data[mid]==k){ if((mid>0 && data[mid+1] !=k) || mid == end) return mid; else start = mid +1; } else{ if(mid>k) end = mid-1; else start = mid+1; } return GetLastIndex(data,k,start,end); }};
0 0
- 【剑指offer】数字在排序数组中出现的次数
- 剑指offer--数字在排序数组中出现的次数
- 《剑指offer》数字在排序数组中出现的次数
- 剑指offer:数字在排序数组中出现的次数
- 剑指offer-数字在排序数组中出现的次数
- 剑指offer:数字在排序数组中出现的次数
- [剑指offer]数字在排序数组中出现的次数
- 剑指offer 数字在排序数组中出现的次数
- [剑指offer]数字在排序数组中出现的次数
- 剑指offer|数字在排序数组中出现的次数
- 剑指offer-数字在排序数组中出现的次数
- 《剑指offer》-数字在排序数组中出现的次数
- 剑指offer - 数字在排序数组中出现的次数
- 剑指offer-数字在排序数组中出现的次数
- 【剑指offer】数字在排序数组中出现的次数
- 剑指offer:数字在排序数组中出现的次数
- 《剑指offer》数字在排序数组中出现的次数
- 剑指offer-数字在排序数组中出现的次数
- CodeIgniter+uploadify上传文件
- dbcp数据源详解
- 流和文件(文件的读写操作)
- Android中的windowSoftInputMode属性详解
- 关于Handler存在的理由和简单的Handler机制!
- 剑指offer(34)-数字在排序数组中出现的次数
- java提高篇—hashMap的底层原理(01)
- Android学习之 图解调用invalidate()和requestLayout()的过程
- 第三方登录
- ListView属性
- Java单例模式中双重检查锁的问题
- java.lang.InterruptedException
- 安装和测试Kafka
- 流和文件(文件的保存)