二分查找中term有重复的情况
来源:互联网 发布:mac录屏如何录制声音 编辑:程序博客网 时间:2024/06/08 06:48
二分查找算法虽然简单,但是遇到待查找的term有重复的时候,也会存在各种小问题。下面给出二分查找中遇到重复term时,第一个可插入位置和最后一个可插入位置的代码。
第一个可插入位置:
class Solution {public: int binarySearch(vector<int> &array, int target) { if(array.size() == 0) {return -1;}int start = 0;int end = array.size() - 1;int mid;while(start + 1 < end) {mid = start + (end - start) / 2;if(array[mid] == target) {end = mid;// 片段1} else if(array[mid] > target) {end = mid;} else if(array[mid] < target) {start = mid;}}// 片段2if(array[start] == target) {return start;}// 片段3if(array[end] == target) {return end;} return -1; }};最后一个可插入位置:
1、将片段1中的代码换为:start = mid;
2、将片段2和片段3的代码位置互换。
0 0
- 二分查找中term有重复的情况
- 【leetcode】有重复的旋转排序数组查找(二分)
- 编程珠玑第9章二分搜索(有重复数字)中查找某数出现的第一个位置
- MYSQL中查找重复记录的几种情况
- 二分查找-有重复数和无重复数
- Leetcode|Find Minimum in Rotated Sorted Array II(有重复元素的二分查找)
- 不同情况的二分查找详解
- 二分查找--查找重复有序数组中最左边的target
- 含有重复元素的二分查找算法
- 二分查找各种情况汇总
- 非常棒的二分查找所有情况的考虑
- 非常棒的二分查找所有情况的考虑
- 二分查找的各种情况实现以及一些注意点
- Search in Rotated Sorted Array II 旋转的数组中查找,有重复元素
- 重复数组中的二分查找
- 二分查找包含重复项
- 二分查找真的有你想象中那么简单吗?
- 二分查找真的有你想象中那么简单吗?
- hdu5534 Partial Tree
- 成员的初始化
- printf可变参数的实现
- mysqldump参数大全
- 创建springmvc src文件和jsp文件
- 二分查找中term有重复的情况
- 解释型语言与编译型语言的区别
- Mysql压缩包版的安装方法
- AsysnTask&Handler
- 树状数组选讲
- 使用rand5()生成rand7()
- 每个程序员都会的 35 个 jQuery 小技巧
- 一结(13)
- Android-Uiautomator:keyCode快速输入