统计一个数字在排序数组中出现的次数
来源:互联网 发布:定制化软件 编辑:程序博客网 时间:2024/06/05 09:15
public class Solution { public int GetNumberOfK(int [] array , int k) { int first = GetFirstOfK(array,k,0,array.length - 1); int end = GetLastOfK(array,k,0,array.length - 1); int num = 0; if(first > -1 && end > -1){ num = end - first + 1; return num; } return num; } public int GetFirstOfK(int [] array,int k,int start,int end){ if(start > end){ return -1; } int middle = (start + end)/2; int middleData = array[middle]; if(middleData == k){ if((middle > 0 && array[middle - 1] != k) || middle == 0){ return middle; } else end = middle - 1; } else if(middleData > k){ end = middle - 1; } else start = middle + 1; return GetFirstOfK(array,k,start,end); } public int GetLastOfK(int [] array,int k,int start,int end){ if(start > end){ return -1; } int middle = (start + end)/2; int middleData = array[middle]; if(middleData == k){ if((middle < array.length - 1 && array[middle + 1] != k) || middle == array.length -1){ return middle; } else start = middle + 1; } else if(middleData < k){ start = middle + 1; } else end = middle - 1; return GetLastOfK(array,k,start,end); }}
阅读全文
0 0
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- (4)统计一个数字,在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数(二分法)
- 剑指offer-38 统计一个数字在排序数组中出现的次数
- 【c语言】统计一个数字在排序数组中出现的次数
- Android基础篇(二)资源
- 09-排序2 Insert or Merge (25分)
- 1.2 离散LTI系统的时域分析
- 逻辑运算符
- B. Vladik and Complicated Book
- 统计一个数字在排序数组中出现的次数
- 欢迎使用CSDN-markdown编辑器
- DHUOJ 2017051002
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- 在Java se 环境中加入ee开发环境
- django request
- (145)光线追踪距离场柔和阴影
- 编程提升关键-编程思维
- 垃圾收集器与内存分配策略