[LeetCode] Binary Search 二分搜索法
2024-10-15 21:48:46
Given a sorted (in ascending order) integer array nums
of n
elements and a target
value, write a function to search target
in nums
. If target
exists, then return its index, otherwise return -1
.
Example 1:
Input:nums
= [-1,0,3,5,9,12],target
= 9
Output: 4
Explanation: 9 exists innums
and its index is 4
Example 2:
Input:nums
= [-1,0,3,5,9,12],target
= 2
Output: -1
Explanation: 2 does not exist innums
so return -1
Note:
- You may assume that all elements in
nums
are unique. n
will be in the range[1, 10000]
.- The value of each element in
nums
will be in the range[-9999, 9999]
.
这道题就是最基本的二分搜索法了,这是博主之前总结的LeetCode Binary Search Summary 二分搜索法小结的四种之中的第一类,也是最简单的一类,写法什么很模版啊,注意right的初始化值,还有while的循环条件,以及right的更新值,这三点不同的人可能会有不同的写法,选一种自己最习惯的就好啦,参见代码如下:
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = , right = nums.size();
while (left < right) {
int mid = left + (right - left) / ;
if (nums[mid] == target) return mid;
else if (nums[mid] < target) left = mid + ;
else right = mid;
}
return -;
}
};
类似题目:
Search in a Sorted Array of Unknown Size
参考资料:
https://leetcode.com/problems/binary-search
LeetCode All in One 题目讲解汇总(持续更新中...)
最新文章
- saltstack初探
- 【WebGoat习题解析】Parameter Tampering->;Bypass HTML Field Restrictions
- json工具包比较 fastjson jackson gson
- pooling的原理与Python实现
- csdn第四名
- struts2.1笔记05:struts2开发环境的搭建
- call()和apply()的区别
- 字符串编码、Base64字符串 互转
- c++重载、覆盖和隐藏
- word 一些有用的技巧
- ecstore在MySQL5.7下维护报错WARNING:512 @ ALTER IGNORE TABLE
- 比AutoMapper轻量快速简洁的实体映射库YeaJur.Mapper
- [物理学与PDEs]第5章第3节 守恒定律, 应力张量
- Linux编程 11(shell全局环境变量与局变环境变量)
- suricata HTTP关键字
- C++之强制类型转化
- C++ Curiously Recurring Template Prattern(CRTP)例程
- 第十九章 springboot + hystrix(1)
- HttpServletRequest介绍
- 75-扩展GCD-时间复杂度