力扣 LeetCode 704. 二分查找(Day1:数组)

解题思路:

二分查找主要分为[ left , right ]左闭右闭和[ left , right )左闭右开两种

此处采取[ left , right ]左闭右闭写法

注意:

  1. right的初始化取值

  2. while中取等

  3. right = mid -1 ;

java 复制代码
class Solution {
    public int search(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;

        while (left <= right) {
            int mid = left + ((right - left) >> 1);
            if (nums[mid] > target) {
                right = mid - 1;
            } else if (nums[mid] < target) {
                left = mid + 1;
            } else {
                return mid;
            }
        }
        return -1;
    }
}
相关推荐
kk”19 小时前
C语言快速排序
数据结构·算法·排序算法
纪元A梦19 小时前
贪心算法应用:基因编辑靶点选择问题详解
算法·贪心算法
3壹19 小时前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法
skytier19 小时前
Construct内报错和定位解决
算法
skytier19 小时前
Ascend print数据落盘使用
算法
etcix20 小时前
dmenux.c: integrate dmenu project as one file
c语言·前端·算法
papership20 小时前
【入门级-算法-6、排序算法:选择排序】
数据结构·算法·排序算法
汉克老师20 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
共享家952720 小时前
优先搜索(DFS)实战
算法·leetcode·深度优先
一只懒洋洋21 小时前
中值滤波、方框滤波、高斯滤波、均值滤波、膨胀、腐蚀、开运算、闭运算
算法·均值算法