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

【力扣算法题】每天一道,健康生活

2024年10月8日
参考github网站:代码随想录

1.二分查找

leetcode
视频

class Solution {
public:int search(vector<int>& nums, int target) {int left = 0;int right = nums.size()-1;while(left<=right){int middle = (left+right)/2;if(nums[middle] > target){right = middle -1;}else if(nums[middle] < target){left = middle +1;}else return middle;}return -1;}
};

核心是边界处理

以左右均为闭区间为例:

第一个点是while循环中left是可以等于right的,因为[1,1]仍然有意义,否则就是丢情况;

第二个点是在进行左右两个区间分割的时候,是将middle-1传递给right或middle+1传递给left,如果将middle传递,是因为区间是闭区间,middle是被包含的,但是middle一定不是target的目标值(nums[middle] > target)。相反在左闭右开区间,开区间的部分就是传递middle了。


http://www.mrgr.cn/news/45706.html

相关文章:

  • Python Kivy 应用的进阶学习教程
  • 实验5 数组
  • Sym-NCO:利用对称性进行神经组合优化
  • 【测试】——Loadrunner 介绍与使用
  • 【重学 MySQL】六十二、非空约束的使用
  • MySQL运维
  • std::future概念和使用方法
  • erlang学习:Linux命令学习10
  • 【PCL】Ubuntu22.04 安装 PCL 库
  • 三层网络与三层组网
  • Polars简介
  • 一款基于 Spring Boot、Vue、Element UI 的快速开发平台,零代码开发,致力于做更简洁的后台管理系统(附源码)
  • Comfyui segmentAnythingUltra V2报错
  • Verilog开源项目——百兆以太网交换机(九)表项管理模块设计
  • 面向对象技术——设计模式
  • 详解正确创建好SpringBoot项目后但是找不到Maven的问题
  • 刷题 二叉树
  • (22)以RS码为例说明信道编码AWGN信道的Eb/N0设置
  • 【电商搜索】现代工业级电商搜索技术-EMNLP2024-无监督的用户偏好学习
  • 大数据新视界 --大数据大厂之 Presto 性能优化秘籍:加速大数据交互式查询