首页 > 其他分享 >02二分

02二分

时间:2023-01-02 11:34:57浏览次数:51  
标签:02 二分 return int 半段 mid bool check

二分

问题

适用于一个序列,有一个check函数,能够使得序列左边都返回false,右边都返回true,然后我们找的就是这个分界点的时候

基本思想

两种情况
一种是求 左半段最后一个元素,也就是说求上界,比如求 小于等于 x 的最后一个元素
这时候 mid = l + r + 1 >> 1;

bool check(int mid , int x){
    return q[mid] <= x;
}
if(check(mid,x)) l = mid;
else r = mid - 1;

另一种情况是求 右半段的第一个元素,也就是求下界,比如求 大于等于 x 的第一个元素
这时候 mid = l + r + 1 >> 1;

bool check(int mid , int x){
    return q[mid] >= x;
}
if(check(mid,x)) r = mid;
else l = mid + 1;

模板

给定一个序列 q , 求大于等于 x 的第一个值 右半段的第一个

bool check(int mid , int x){
    return q[mid] >= x;
}
int l = 0, r = n - 1, mid;
while (l < r)
{
    mid = l + r >> 1;
    if (check(mid, x)) r = mid;
    else l = mid + 1;
}
if(q[l] == x) ...

给定一个序列 q , 求小于等于 x 的最后一个值 左半段的最后一个

bool check(int mid , int x){
    return q[mid] <= x;
}
int l = 0, r = n - 1, mid;
while (l < r)
{
    mid = l + r + 1 >> 1;
    if (check(mid, x)) l = mid;
    else r = mid - 1;
}
if(q[l] == x) ...

标签:02,二分,return,int,半段,mid,bool,check
From: https://www.cnblogs.com/da-zhi/p/17019626.html

相关文章

  • C/C++通讯录管理程序[2023-01-02]
    C/C++通讯录管理程序[2023-01-02]问题描述:编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。基本要求:程序应提供的......
  • C语言学生成绩管理程序[2023-01-02]
    C语言学生成绩管理程序[2023-01-02]题目一、学生成绩管理程序(学号后三位139-390的选做)任务:利用C语言中相关知识(包括文件,结构体数组等)设计学生成绩管理程序,要求如下:任意......
  • 2022年最有开创性的10篇AI论文总结
    2022年随着聊天GPT和Mid-journey和Dall-E等图像生成器的流行,我们看到了整个人工智能领域的重大进展。在人工智能和计算机科学的时代,这是令人振奋的一年。本文我们总结了......
  • C++小型公司工资管理系统[2023-01-02]
    C++小型公司工资管理系统[2023-01-02]题目14“小型公司工资管理系统设计”1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇......
  • C/C++停车场管理系统[2023-01-02]
    C/C++停车场管理系统[2023-01-02]项目七:停车场管理系统1、教学内容提供停车场地的管理,分为月租车和临时停车两大类。场地分为月租车停放区域和临时车辆停放区域两大块......
  • 2023前端二面高频vue面试题集锦
    vuex是什么?怎么使用?哪种功能场景使用它?Vuex是一个专为Vue.js应用程序开发的状态管理模式。vuex就是一个仓库,仓库里放了很多对象。其中state就是数据源存放地,对应于......
  • 2022前端二面react面试题(边面边更)
    何为JSXJSX是JavaScript语法的一种语法扩展,并拥有JavaScript的全部功能。JSX生产React"元素",你可以将任何的JavaScript表达式封装在花括号里,然后将其嵌入到JS......
  • Pyecharts“可视化大屏“,带你重温 “2020东京奥运会“,不看直播尽知其事!
    目录  ​​1、项目背景​​  2、奥运会相关信息爬取   ①导入相关库   ②爬虫代码完整讲解  3、数据预处理   ①数据替换   ②数据分组   ......
  • 代码随想录算法训练营第四天LeetCode24,19,02
    代码随想录算法训练营第四天|LeetCode24,19,02.07,142LeetCode24两两交换链表中的节点题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description///采用虚......
  • 2022-12月读书整理
    12月读书整理:12.10认识自己,选择生活唯一不变的是改变本身。Theonlythingthatdoesn'tchangeischangeitself.12.11精要主义试图做所有“正确”的事情,追求尽善......