找出排序数组中重复数字的个数

Posted 笨鸟居士的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出排序数组中重复数字的个数相关的知识,希望对你有一定的参考价值。

开始我的思路是先二分查找找到一个,然后再两边分别看个数。

但是这种方法会退化到O(n)。效率不好。

 

所以更好的方法是,先找出第一个,再找出最后一个。这个在二分查找的时候,通过判断条件的处理,是能够获得的。

比较基本的思路是,如果找到的数=k,那么判断前面一个数是不是k,如果不是,停止查找,这个是第一个;如果是的,那么继续在前半部分查找。领悟

 

以上是关于找出排序数组中重复数字的个数的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer(第 2 版)刷题 | 03. 数组中重复的数字

值为1到99的100个数中有两个数相等,设计算法找出这两个数

桶排序

桶排序

不修改数组找出重复的数字(c语言)

数组排序Array.Sort(nums)