在有序数组中,统计某一元素出现的次数
来源:互联网 发布:淘宝3个月没卖出一件 编辑:程序博客网 时间:2024/05/16 06:25
题目:在排序数组中,找出给定元素出现的次数。
例如:有序数组[1,2,3, 4, 5, 5, 5, 5,6,7,8]中,5出现的次数为4次。
C程序实现:
1.直接比较统计,O(N)的时间复杂度。
int findCount(int a[],int len ,int key){int i,count = 0;for(i=0;i<len;i++){if(key==a[i])count++; } return count;}
2.利用二分查找,分别找出最先出现和最后出现的位置,再统计出现的次数即可,时间复杂度为O(logN)。
int BinarySort(int a[],int len, int key, bool isLeft){int left = 0, right = len -1;int last = 0 ; // 记录下标 while(left<=right){ int mid = (left + right)/2;if(a[mid]<key){left = mid + 1;}else if(a[mid]>key){right = mid -1;}else{last = mid ;if(isLeft)// 该值在mid左边还有时 {right = mid - 1; }else{left = mid + 1;}}}//if (last>0)//return last;//else //return -1; return last>0?last:-1;}
1 0
- 在有序数组中,统计某一元素出现的次数
- 查找一个有序数组中某一数值出现的次数
- 统计数组中各元素出现次数
- 找出key在有序数组中出现的次数
- 数字在有序数组中出现的次数
- offer38-找数字在有序数组中出现的次数
- 统计数组中各数字(元素)出现的次数
- 统计一个无序数组中出现次数最多的元素
- 统计一个无序数组中出现次数最多的元素
- java 统计数组中各元素出现的次数
- 统计数组中出现次数最多的元素并输出
- 有序数组找到出现次数最高的元素和次数
- 统计`数组`元素出现的次数
- 找出有序元素数组中指定元素出现的次数
- 数组元素出现次数统计
- c++在数组中查找元素并返回位置下标,统计某元素出现次数程序
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- Web 图片性能优化系列一:背景与基础
- PHP学习(0)
- JavaScript 简单实现加减乘除运算
- CSS(1)知识点
- Top 10 torrent sites
- 在有序数组中,统计某一元素出现的次数
- KM算法趣味讲解+模板
- margin塌陷问题与合并问题
- 好玩的API调用之---星座运势的API与爬虫爬取
- C++实现栈中元素排序
- LeetCode | 21. Merge Two Sorted Lists
- oj2325查找【数组】
- java 去英文单词出现的次数
- 1407: [Noi2002]Savage