数字在排序数组中出现的次数
来源:互联网 发布:mac口红免税店价格 编辑:程序博客网 时间:2024/06/13 11:30
统计一个数字在排序数组中出现的次数 。【采用二分查找的变体】
class Solution {public: // Again!!!! int getLeftC(vector<int> a,int len, int left, int right, int k){int mid;while (left <= right){mid = left + (right - left) / 2;if (a[mid] == k){if (mid == 0 || mid - 1 >= 0 && a[mid - 1] != k)return mid;else{right = mid - 1;}}else if (a[mid] > k){right = mid - 1;}else{left = mid + 1;}} return -1;}int getRightC(vector<int> a,int len, int left, int right, int k){int mid;while (left <= right){mid = left + (right - left) / 2;if (a[mid] == k){if (mid ==len-1 || mid + 1 <=len-1 && a[mid + 1] != k)return mid;else{left = mid + 1;}}else if (a[mid] > k){right = mid - 1;}else{left = mid + 1;}} return -1;} int GetNumberOfK(vector<int> data ,int k) { int len=data.size(); if(len<=0) return 0; int c1=getLeftC(data,len,0,len-1,k); int c2=getRightC(data,len,0,len-1,k); if(c1==-1 || c2==-1) return 0; return c2-c1+1; }};
0 0
- 【数组8】数字在排序数组中出现的次数
- 【数组4】数字在排序数组中出现的次数
- 数组9:数字在排序数组中出现的次数
- 数字在排序数组中出现的次数(数组)
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 统计一个数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- Java synchronized 关于…
- SQL 登陆
- Android网络编程之XML解析
- SQL时间查询和子查询
- SQL子查询
- 数字在排序数组中出现的次数
- IQKeyboardManager
- 用FileInputStream和FileOutputStream拷贝文件
- Linux网络编程--IO模型基础
- 一段代码 完全解读 SharedPreferedces。
- 主成分分析(Principal components analysis)-最大方差解释
- javascript运算符
- spring mvc+hibernate 实现事务管理(配置文件版)
- UVALive 4954 Lawn mower (简单模拟题)