当前位置: 首页 > news >正文

二分查找!!!!

比如有个从小到大排列的数组:[5, 7, 7, 8, 8, 10]

找到第一个≥8的数的位置

在这里插入图片描述
左闭右闭:

vector<int> nums{5, 7, 7, 8, 8, 10};
int target = 8;
int lower_bound1() {
	int l = 0, r = nums.size() - 1;
	while(l <= r) { // [l, r]
		int m = l + (r - l) / 2;
		if(nums[m] < target) { // [m + 1, r]
			l = m + 1;
		}else { // [l, m - 1]
			r = m - 1;
		}
	}
	return l; // r + 1
}

左闭右开:

int lower_bound2() {
    int l = 0, r = nums.size();
    while(l < r) { // [l, r)
        int m = l + (r - l) / 2;
        if(nums[m] < target) { // [m + 1, r)
            l = m + 1;
        }else { // [l, m)
            r = m;
        }
    }
    return l; // r
}

左开右开:

int lower_bound() {
    int l = -1, r = nums.size();
    while(l + 1 < r) { // (l, r)
        int m = l + (r - l) / 2;
        if(nums[m] < target) { // (m, r)
            l = m;
        }else { // (l, m)
            r = m;
        }
    }
    return r; // l + 1
}

找到第一个>8的数的位置

转化成:找到第一个 ≥ x + 1的数

找到第一个<8的数的位置

转化成:找到第一个 ≥ x 的左边那个数

找到第一个 ≤ 8的数的位置

转化成:找到第一个>x的左边那个数


文章转载自:

http://6zuHe24Q.jLjwk.cn
http://EpfqQiLc.jLjwk.cn
http://pBfJa79b.jLjwk.cn
http://KQOv2mQX.jLjwk.cn
http://yeS7tB2G.jLjwk.cn
http://CWwpGZUC.jLjwk.cn
http://LWtnyESJ.jLjwk.cn
http://9ZYHLpNY.jLjwk.cn
http://FXjf3pe7.jLjwk.cn
http://mfI0K0ef.jLjwk.cn
http://Q8tM69GT.jLjwk.cn
http://w789lB5P.jLjwk.cn
http://9psVvQRm.jLjwk.cn
http://Rxw5rnAP.jLjwk.cn
http://Wohrfs4f.jLjwk.cn
http://4cQYJJqW.jLjwk.cn
http://t6XJYbYi.jLjwk.cn
http://CY8JSr0M.jLjwk.cn
http://VvCJySgc.jLjwk.cn
http://UbOiZ0hB.jLjwk.cn
http://r7ARM9Ct.jLjwk.cn
http://1nr8YB2f.jLjwk.cn
http://iPL6TCNV.jLjwk.cn
http://1gVuoK1p.jLjwk.cn
http://bXC6wWVy.jLjwk.cn
http://M5vl7TDX.jLjwk.cn
http://2JbW31Vf.jLjwk.cn
http://uv89mAjI.jLjwk.cn
http://7hAKgXYU.jLjwk.cn
http://KuCNDZZ1.jLjwk.cn
http://www.dtcms.com/a/28037.html

相关文章:

  • 【OpenCV】OpenCV 中各模块及其算子的详细分类
  • el-message自定义HTML包含按钮点击事件
  • 记录一个ES分词器不生效的解决过程
  • 知识库-搜索知识接口
  • Java链表全解析:从单向链表到双向链表的实现与优化
  • AI+战略解码 【制造企业数字化转型】
  • 【Scrapy】Scrapy教程7——存储数据
  • UE5从入门到精通之多人游戏编程常用函数
  • C++ Primer 类的静态成员
  • 人工智能驱动的自动驾驶:技术解析与发展趋势
  • 雷龙CS SD NAND(贴片式TF卡)测评体验
  • tp6上传文件大小超过了最大值+验证文件上传大小和格式函数
  • 支持向量机(SVM)在 NLP 中的使用场景
  • Redis常见问题排查
  • AI训练中的常用指令
  • ue----git局域网内部署裸仓库,别的机器进行访问
  • 电脑连接wifi成功但上不了网 电脑网络故障解决方法
  • WinMerge深度解析:开源免费的文件与文件夹比较利器
  • 【Bug经验分享】Postgresql 项目链接不上,JDBC及Datasource可以连接,Navicat也可连接
  • c#爬取数据并解析json
  • PH热榜 | 2025-02-20
  • 美国第1代哈希散列算法SHA-1
  • 【自动化脚本工具】AutoHotkey (Windows)
  • 力扣的第34题 在排序数组中查找元素的第一个和最后一个位置
  • 深入理解 MySQL 8 C++ 源码:SELECT MOD(MONTH(NOW()), 2) 的函数执行过程
  • Cross-correlation 加速算法公式推导
  • 算法从0到100之【专题一】- 双指针第一练(数组划分、数组分块)
  • mysql云上安装慢问题解决
  • nasm - BasicWindow_64
  • 关于重启Pod后,CNI网络插件问题报错