剑指offer 数字在排序数组中出现的次数
2016-04-27 11:08
253 查看
题目描述
统计一个数字在排序数组中出现的次数。
统计一个数字在排序数组中出现的次数。
public int getFisrtK(int[] arr, int k, int start, int end) { if (start > end) { return -1; } int mid = (end + start) / 2; int x = arr[mid]; if (x == k) { if (mid > 0 && arr[mid - 1] != k || mid == 0) { return mid; } else { end = mid - 1; } } else if (x > k) { end = mid - 1; } else { start = mid + 1; } return getFisrtK(arr, k, start, end); } public int getLastK(int[] arr, int len, int k, int start, int end) { if (start > end) { return -1; } int mid = (end + start) / 2; int x = arr[mid]; if (x == k) { if (mid < len - 1 && arr[mid + 1] != k || mid == len - 1) { return mid; } else { start = mid + 1; } } else if (x > k) { end = mid - 1; } else { start = mid + 1; } return getLastK(arr, len, k, start, end); } public int GetNumberOfK(int[] array, int k) { int count = 0; if (array != null && array.length > 0) { int first = getFisrtK(array, k, 0, array.length - 1); int last = getLastK(array, array.length, k, 0, array.length - 1); System.out.println(first + " " + last); if (first > -1 && last > -1) { count = last - first + 1; } } return count; }
相关文章推荐
- Bootstrap(六) 其它内置组件
- Node.js Mac版安装教程
- netty四种BUFFER的内存测试
- 1、第一个JSP
- json-lib 之jsonConfig详细使用(转载写的不错)
- node.js调试
- angularJs依赖注入写法
- angularJs依赖注入服务
- DeepLearning: 数据处理5:将caffe训练时屏幕输出可视化(matlab代码)
- jquery插件开发及 jquery自定义函数
- jQuery操作checkbox选择
- Bootstrap(五) 导航条、分页导航
- 基于thrift的node.js rpc服务
- JavaScript 进阶学习 4 事件
- DeepLearning: 数据处理4:将caffe训练时屏幕输出保存到文本文件(sh文件)
- JavaScript编码规范
- Bootstrap(四) 菜单、按钮及导航
- JSP页面元素构成
- css定位方式
- HTML打开摄像头,进行拍照上传