博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字在排序数组中出现的次数
阅读量:6374 次
发布时间:2019-06-23

本文共 1071 字,大约阅读时间需要 3 分钟。

采用二分查找的方法,一旦找到,left++,right--,--middle++,扩展查找。

开始while(left<right),当n=1时不能进入循环,应写while(left<=right)

1 class Solution { 2 public: 3     int GetNumberOfK(vector
data ,int k) { 4 int n=data.size(); 5 if(n<1) return 0; 6 int left=0; 7 int right=n-1; 8 int middle=0; 9 int count=0;10 while(left<=right){11 if(data[left]==k){12 while(data[left]==k&&left
=0){20 right--;21 count++;22 }23 return count;24 }25 middle=left+(right-left)/2;26 if(data[middle]==k){27 count++;28 int m=middle-1;29 while(data[m]==k&&m>=0){30 m--;31 count++;32 }33 m=middle+1;34 while(data[m]==k&&m
k)41 right=middle-1;42 else43 left=middle+1;44 }45 return count;46 }47 };

 

转载地址:http://mljqa.baihongyu.com/

你可能感兴趣的文章
《Windows Server 2008 R2系统管理实战》前言与内容提要
查看>>
轻巧的网络流量实时监控工具NTOPNG
查看>>
MySQL的log_bin和sql_log_bin 到底有什么区别?
查看>>
Access、Sql 获取当前插入的主键ID
查看>>
聚类算法之DBScan(Java实现)
查看>>
为什么要使用AOP?
查看>>
iis7.0修改网站端口
查看>>
Vista下串口问题
查看>>
SYS_单据序列Sequence产生方式(案例)
查看>>
android2.2源码初探
查看>>
AMD OpenCL大学课程(11)
查看>>
康拓展开及应用
查看>>
VC :模板类
查看>>
对C++中string类型的总结
查看>>
SharePoint的数据库性能需要注意的一点
查看>>
Oracle发布公共云Public Cloud
查看>>
表驱动
查看>>
eclipse高亮显示
查看>>
C#简单的面试题目(六)
查看>>
Shell 操作数据库
查看>>