LeetCode 二分查找模板 I
2024-09-05 10:44:22
模板 #1:
int binarySearch(vector<int>& nums, int target){
if(nums.size() == 0)
return -1; int left = 0, right = nums.size() - 1;
while(left <= right){
// Prevent (left + right) overflow
int mid = left + (right - left) / 2;
if(nums[mid] == target){ return mid; }
else if(nums[mid] < target) { left = mid + 1; }
else { right = mid - 1; }
} // End Condition: left > right
return -1;
}
模板 #1 是二分查找的最基础和最基本的形式。这是一个标准的二分查找模板,大多数高中或大学会在他们第一次教学生计算机科学时使用。模板 #1 用于查找可以通过访问数组中的单个索引来确定的元素或条件。
关键属性
- 二分查找的最基础和最基本的形式。
- 查找条件可以在不与元素的两侧进行比较的情况下确定(或使用它周围的特定元素)。
- 不需要后处理,因为每一步中,你都在检查是否找到了元素。如果到达末尾,则知道未找到该元素。
区分语法
- 初始条件:
left = 0, right = length-1
- 终止:
left > right
- 向左查找:
right = mid-1
- 向右查找:
left = mid+1
最新文章
- iOS开发之多种Cell高度自适应实现方案的UI流畅度分析
- Android 笔记 a+b day6
- S1java基础学习笔记
- PHP中include和require(转)
- asp.net 微信企业号办公系统-流程设计--流程步骤设置-事件设置
- poj-2393 Yogurt factory (贪心)
- @override
- ECshop模板机制
- Msys下gcc的配置
- 网络编程之TCP异步群聊:客户端代码
- jQuery validator plugin之Validator
- 5.数码相框-额外项目电子书总结,并使用svgalib库
- mysql 查询优化~ 分页优化讲解
- [Umbraco] macro(宏)在umbraco中的作用
- 如何优雅的控制goroutine的数量
- October 10th 2017 Week 41st Tuesday
- 什么是 Event Loop?
- Docker解决没有vi、vim等命令
- 执行impdp时出现的各种问题
- 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改
热门文章
- POJ1422
- 题解 CF1428F Fruit Sequences
- Spark3.0中Dates和Timestamps
- C#9.0新特性详解系列之六:增强的模式匹配
- 最短路径——BFS算法
- NMO not setuid-root (Unix-only)
- synchronized实现原理及ReentrantLock源码
- css 12-CSS3属性详解:动画详解
- 工具-chrome相关-安装crx包及错误解决(99.3.1)
- 老哥你能写篇 SpringCloud Alibaba 全家桶吗? 看视频太累 太枯燥了 !