找出key在有序数组中出现的次数
来源:互联网 发布:python方法和函数 编辑:程序博客网 时间:2024/06/05 00:30
思路:用两分二次查找即可,第一次查找确定key第一次出现的位置,第二次查找确定key最后一次出现的位置。
int fun(vector<int> &arr,int size,int key) { if(arr.empty()) return 0; int left =0; int right=size-1; int mid; while(left<=right){ mid=left+(right-left)>>1; if(arr[mid]==key){ if(mid-1>=0&&arr[mid-1]==key) right=mid-1; else break; }else if(arr[mid]>key) right=mid-1; else left=mid+1; } if(left>right) return 0; int tmp=mid; left =mid; right=size-1; while(left<=right){ mid=left+(right-left)>>1; if(arr[mid]==key){ if(mid+1<size&&arr[mid+1]==key) left=mid+1; else break; }else if(arr[mid]>key) right=mid-1; else left=mid+1; } return mid-tmp+1; }
0 0
- 找出key在有序数组中出现的次数
- 有序数组中找出给定数字的出现次数
- 数字在有序数组中出现的次数
- 在有序数组中,统计某一元素出现的次数
- offer38-找数字在有序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 找出有序元素数组中指定元素出现的次数
- O(lgn)时间内找出有序数组中某个元素出现的次数
- O(lgn)时间内找出有序数组中某个元素出现的次数
- svn服务器相关
- [swift学习之六]@autoClosure练习
- 数据库分页查询报错:ORA_00923:column ambiguously defined 某列定期模糊
- 【C/C++】printf 格式化输出
- php上传大文件时出现错误
- 找出key在有序数组中出现的次数
- Linux文件权限详解
- 深入理解Java类加载
- 最大公约数2
- js动态改变iframe高度自适应
- bind()适配器(Adapter) -- 调用全局函数及成员函数
- Hibernate.initialize(Obj)用法
- Linux 命令
- 猜字谜