剑指offer——面试题38:数字在排序数组中出现的次数
来源:互联网 发布:阿里云域名解析a记录 编辑:程序博客网 时间:2024/04/27 20:20
int GetFirstK(int* data, int length, int k, int start, int end){ if(start > end) return -1; int middleIndex = (start + end) / 2; int middleData = data[middleIndex]; if(middleData == k) { if((middleIndex > 0 && data[middleIndex - 1] != k) || middleIndex == 0) return middleIndex; else end = middleIndex - 1; } else if(middleData > k) end = middleIndex - 1; else start = middleIndex + 1; return GetFirstK(data, length, k, start, end);}
int GetLastK(int* data, int length, int k, int start, int end){ if(start > end) return -1; int middleIndex = (start + end) / 2; int middleData = data[middleIndex]; if(middleData == k) { if((middleIndex < length - 1 && data[middleIndex + 1] != k) || middleIndex == length - 1) return middleIndex; else start = middleIndex + 1; } else if(middleData < k) start = middleIndex + 1; else end = middleIndex - 1; return GetLastK(data, length, k, start, end);}
int GetNumberOfK(int* data, int length, int k){ int number = 0; if(data != NULL && length > 0) { int first = GetFirstK(data, length, k, 0, length - 1); int last = GetLastK(data, length, k, 0, length - 1); if(first > -1 && last > -1) number = last - first + 1; } return number;}
0 0
- 剑指offer——面试题38:数字在排序数组中出现的次数
- 剑指offer 面试题38—数字在排序数组中出现的次数
- 【剑指offer】6.3知识迁移能力——面试题38:数字在排序数组中出现的次数
- 剑指 offer代码解析——面试题38数字在排序数组中出现的次数
- [剑指offer][面试题38]数字在排序数组中出现的次数
- 剑指Offer:面试题38 数字在排序数组中出现的次数
- 剑指offer面试题38:数字在排序数组中出现的次数
- 《剑指Offer》学习笔记--面试题38:数字在排序数组中出现的次数
- 【剑指Offer学习】【面试题38:数字在排序数组中出现的次数】
- 剑指Offer面试题38(Java版):数字在排序数组中出现的次数
- 剑指offer-面试题38:数字在排序数组中出现的次数
- 剑指offer之面试题38数字在排序数组中出现的次数
- 剑指offer面试题38:数字在已排序数组中出现的次数
- 剑指offer面试题38:数字在排序数组中出现的次数
- 剑指Offer----面试题38:数字在排序数组中出现的次数
- 剑指Offer面试题38:数字在排序数组中出现的次数 Java实现
- 剑指offer--面试题38:数字在排序数组中出现的次数
- 剑指Offer面试题38(Java版):数字在排序数组中出现的次数
- poj 1077 hdu 1043 八数码
- LinkedHashMap 源码剖析
- git提交后,代码里的\r\n和\n相关
- 初识PHP(3)
- 南邮蓝桥杯热身赛3
- 剑指offer——面试题38:数字在排序数组中出现的次数
- uva10815 Andy's First Dictionary (STL)
- WebRTC代码目录结构
- ZCMU—1540
- 自适应图像对比度增强算法
- EventBus(初步使用)
- Public Bike Management
- ACdream 1082 闪电战
- Linux文件打包和解压