剑指Offer——数字在排序数组中出现的次数
2016-05-18 17:03
363 查看
题目描述:
统计一个数字在一个排序数组中出现的次数。
例如输入{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。
统计一个数字在一个排序数组中出现的次数。
例如输入{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。
//查询k值最后一次出现的下标 int GetLastK(int *pData,int length,int k,int stanum,int endnum) { if(stanum>endnum) return-1; int midindex=(stanum+endnum)>>1; int middata=pData[midindex]; if(middata==k) { if(midindex==length-1||(midindex<length-1&&pData[midindex+1]!=k)) return midindex; else stanum=midindex+1; } else if(middata>k) endnum=midindex-1; else stanum=midindex+1; return GetLastK(pData,length,k,stanum,endnum); } int GetNumofK(int *pData,int length,int k) { int number=0; if(pData!=NULL&&length>0) { int first=GetFirstK(pData,length,k,0,length-1); int last=GetLastK(pData,length,k,0,length-1); //第一个和最后一次出现的位置都存在 if(first>-1&&last>-1) number=last-first+1; } return number; }
相关文章推荐
- AngularJS scope的一个特性:刷新子scope的时候,也会刷新父scope;反之亦然
- html5-在网页中来回拖放图片
- js try{}catch(err){} 异常处理
- CSS布局口诀
- 【leetcode】237. Delete Node in a Linked List
- 剑指Offer——判断平衡二叉树
- jQuery EasyUI datagrid 无记录时,增加"暂无数据"提示
- JS+Canvas 实现下雨下雪效果
- 剑指Offer——数组中只出现一次的两个数字
- 关于使用jsp:include标签及<%@ include标签时要注意的事项
- JSP 最佳实践: 用 jsp:include 控制动态内容
- 1.AngularJS 模块
- 三种Ceph rgw前端的配置方式
- HTML中的列表
- 如何判断Javascript对象是否存在的简单实例
- 辨析Java中的String与StringBuffer及StringBuilder字符串类
- jquery遍历json对象集合详解
- JavaScript学习日志——内建的全局函数
- 关于nodejs iconv的编码无效 说明
- html5-在网页中拖放文字