今天做笔试题的时候做到了这题,当时由于时间 太短,而且因为没有处理好JavaScript中整数的关系,导致结果没有运行出来。所以在结束之后,在网上搜了资料,发现都是用C语言或者C++,java实现的,没有用JavaScript实现的,于是我又重新做了这道题。
思路分析:
1、首先这个数组是有序的,所以我们只要能够找到这个给定的数字在这个数组中出现的第一个位置和最后一个位置就可以得到一共出现的次数;
2、在这里采用二分查找的方法可以更快速的找到第一个位置和最后一个位置,减少时间复杂度,最坏情况下的时间复杂度为为O(logn);
具体实现方法: