剑指offer-数字在排序数组中出现的次数
2018-04-12 04:31
357 查看
二分
int GetNumberOfK(vector<int> data ,int k) { int l=0,r=data.size()-1; int m=(l+r)/2; bool isfind=false; int pos=-1; while(!isfind && l<=r) { if(k>data[m]) { l=m+1; m=(l+r)/2; } else if(k<data[m]) { r=m-1; m=(l+r)/2; } else { isfind=true; pos=m; } } if (pos==-1) return 0; int sum=1,index=pos+1; while(index<data.size() && data[index]==data[pos]) { index++; sum++; } index=pos-1; while(index>=0 && data[index]==data[pos]) { index--; sum++; } return sum; }
相关文章推荐
- 剑指Offer--038-数字在排序数组中出现的次数
- 剑指offer_数字在排序数组中出现的次数
- 剑指offer-数字在排序数组中出现的次数
- 【剑指offer-Java版】38数字在排序数组中出现的次数
- 剑指offer--面试题38:数字在排序数组中出现的次数
- 剑指offer 面试题38 数字在排序数组中出现的次数
- 【剑指Offer-知识迁移能力】统计一个数字在排序数组中出现的次数。
- 剑指offer:数字在排序数组中出现的次数
- 剑指offer——数字在排序数组中出现的次数
- 剑指offer——面试题38:数字在排序数组中出现的次数
- 剑指Offer面试题38:数字在排序数组中出现的次数 Java实现
- 剑指offer之面试题38数字在排序数组中出现的次数
- 剑指offer-第六章面试中的各项能力(数字在排序数组中出现的次数)
- 剑指offer—数字在排序数组中出现的次数
- 剑指offer38:数字在排序数组出现的次数
- 剑指offer:数字在排序数组中出现的次数
- 【剑指offer】面试题38-数字在排序数组中出现的次数
- 剑指Offer - 九度1349 - 数字在排序数组中出现的次数
- 剑指offer 数字在排序数组中出现的次数
- 剑指offer----数字在排序数组中出现的次数----java实现