找出现次数

来源:互联网 发布:ipv6无网络连接与ipv4 编辑:程序博客网 时间:2024/06/05 15:49

Given a sorted array and a number n.How can u find the number of occurance of n in the array . should be o(logn)

int fun(vector<int> &a, int n){int k = a.size();int begin = 0;int end = k-1;int left = -1;while (begin < end-1){int mid = begin + (end-begin)/2;if (a[mid] >= n){end = mid;}else{begin = mid;}}if (a[begin] == n){left = begin;}else if (a[end] == n){left = end;}if (left == -1){return -1;}begin = 0;end = k-1;int right = -1;while (begin < end-1){int mid = begin + (end-begin)/2;if (a[mid] <= n){begin = mid;}else{end = mid;}}if (a[end] == n){right = end;}else if (a[begin] == n){right = begin;}return right-left+1;}


0 0
原创粉丝点击