2025寒假备战蓝桥杯02---朴素二分查找升级版本的学习+分别求解左右端点

ops/2025/1/23 7:22:53/

文章目录

  • 1.朴素二分查找的升级版
  • 2.查找左端点
  • 3.查找右端点
  • 4.代码的编写

1.朴素二分查找的升级版

和之前介绍的这个二分查找相比,我觉得这个区别就是我们的这个二分查找需要找到的是一个区间,而不是这个区间里面的某一个元素的位置;
image-20250120234321180

2.查找左端点

1)首先就是我们的这个循环的条件:left<right;
2)其次就是我们的判断的这个语句:
x<t,这个t就是我们的target目标值;这个时候和我们的朴素二分一样,就是让这个left=mid+1;
但是当这个x>=t的时候,我们不再是让这个right=mid-1了,而是让这个right=mid,因为这个时候是判断的区间,所以这个mid可能就是我们想要的这个数值;;
3)之前我们确定这个mid的时候是这个+1或者是不+1都是可以的,因为当是偶数的时候,两个情况下对应的这个数值都失败可以帮助我们判断的;
但是在这个里面,我们的终点求解的时候,就应该是这个不加1的版本才可以;

image-20250120235325363

3.查找右端点

1)这个和上面的恰好是反过来的,无论是这个终点的求解,还是这个判断和位置的变换,都是和上面的放过来;
上面的取等号的,我们下面的查找右端点就不用取等号,反之,如果上面没取,我们这个就需要进行相等情况下的判断;
2)其次就是这个里面的终点元素的判断:
left+(right-left+1)/2和上面的也是不同的,上面的是不要+1的;

image-20250120235341957

4.代码的编写

1)首先定义一个数组,里面的两个元素都是-1,这个处理的就是我们的这个示例里面的第三种情况;
2)下面就是分别去查找我们的左端点和右端点,按照上面介绍的这个思路即可;
3)左端点:
left<right作为循环的条件;
mid求解的时候不需要+1的操作;
x<target对应的就是我们的left=mid+1;
x>=target对应的就是我们的mid=right;
return的时候其实这个left和right指向的就是一个位置,因此当我们往数组里面搁置的时候,left和right都是可以的;
image-20250120235648864

4)下面的这个是右端点的判断的逻辑代码:
left<right作为我们的判断的条件;
mid求解的时候需要加上1;
x<=target对应的这个left=mid;
x>target的时候,right=mid减去一;
这个找到端点之后,直接把这个下标放到我们的ret数组里面的第二个元素的位置即可;

image-20250120235816734


http://www.ppmy.cn/ops/152404.html

相关文章

VS2022开发WebApi项目如何更换浏览器

1.首先打开你的项目属性 2.点击左上角文件&#xff08;不打开项目属性是不会出现选择更换浏览器的&#xff09; 3.点击使用以下工具浏览,然后选择你需要的浏览器设置为默认值。

计算机视觉算法实战——实体物体跟踪

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​ ​ 1. 领域介绍✨✨ 实体物体跟踪&#xff08;Object Tracking&#xff09;是计算机视觉领域中的一个重要研究方向&#x…

GitCode 助力 AutoTable:共创 MyBatis 生态的自动表格管理新篇章

项目仓库https://gitcode.com/dromara/auto-table 解放双手&#xff0c;专注业务&#xff1a;MyBatis 生态的“自动表格”创新 AutoTable 是一款致力于为 MyBatis 生态赋予“自动表格”功能的创新插件。其核心理念是通过 Java 实体类自动生成和维护数据库的表结构&#xff0c…

VSCode最新离线插件拓展下载方式

之前在vscode商店有以下类似的download按钮&#xff0c;但是2025年更新之后这个按钮就不提供了&#xff0c;所以需要使用新的方式下载 ps:给自己的网站推广下~~&#xff08;国内直连GPT/Claude&#xff09; 新的下载方式1 首先打开vscode商店官网&#xff1a;vscode插件下载…

InVideo AI技术浅析(三):计算机视觉

一、图像识别与分类 1. 工作原理 图像识别与分类是计算机视觉的基础任务,旨在将输入的图像自动分配到预定义的类别中。InVideo AI 使用卷积神经网络(CNN)来实现这一功能。CNN 通过多层卷积和池化操作,自动提取图像的特征,并使用全连接层进行分类。 2. 关键技术模型 卷…

【算法速成01课_N数之和问题_总结】

2sum问题 初级&#xff1a;返回一对数字的索引 给定一个整数型数组nums&#xff0c;再给定一个整数型目标值target,假定数组nums中&#xff0c; 有且仅有一对元素之和&#xff0c;为target, 找出这2个元素&#xff0c;输出他们的索引&#xff0c;元素在答案中不可重复出现。 …

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比

GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比 目录 GA-CNN-LSTM-Attention、CNN-LSTM-Attention、GA-CNN-LSTM、CNN-LSTM四模型多变量时序预测一键对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于GA-CNN-LST…

第二届国赛铁三wp

第二届国赛 缺东西去我blog找&#x1f447; 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…