牛客hot100--BM17---二分查找I(简单难度)

简介: 牛客hot100--BM17---二分查找I(简单难度)

目录

题目概述(简单难度)

题目链接:

点我进入牛客

思路与代码

思路展现

没啥好说的,经典二分查找法

代码示例

import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @param target int整型 
     * @return int整型
     */
    public int search (int[] nums, int target) {
        if(nums == null) {
            return -1;
        }
        int i = 0;
        int j = nums.length - 1;
        while(i <= j) {
            int mid = (i + j) / 2;
            if(nums[mid] < target) {
                i = mid + 1;
            }else if(nums[mid] > target){
                j = mid - 1;
            }else {
                return mid;
            }
        }
        return -1;
    }
}

时间复杂度: O(logn), 每次区间收敛一半

空间复杂度: O(1). 常数个变量

注意事项

这道题目注意在while循环的时候一定要加等于号,如果不加的话会有如下测试用例跑不过去:

以下代码错误:

while(i < j)
相关文章
|
机器学习/深度学习
LeetCode 热题 HOT 100题解 (easy级别)(二)
LeetCode 热题 HOT 100题解 (easy级别)
101 0
|
算法
LeetCode 热题 HOT 100题解 (easy级别)(一)
LeetCode 热题 HOT 100题解 (easy级别)
149 0
|
算法 C++ Python
算法笔记(1)—— 搜索算法:线性搜索(LS)、二分搜索(BS)、记忆化搜索(MS)
算法笔记(1)—— 搜索算法:线性搜索(LS)、二分搜索(BS)、记忆化搜索(MS)
3992 0
每日一题---33. 搜索旋转排序数组[力扣][Go]
每日一题---33. 搜索旋转排序数组[力扣][Go]
每日一题---33. 搜索旋转排序数组[力扣][Go]
每日一题---16. 最接近的三数之和[力扣][Go]
每日一题---16. 最接近的三数之和[力扣][Go]
每日一题---16. 最接近的三数之和[力扣][Go]
每日一题---1005. K 次取反后最大化的数组和[力扣][Go]
每日一题---1005. K 次取反后最大化的数组和[力扣][Go]
每日一题---1005. K 次取反后最大化的数组和[力扣][Go]
每日一题---748. 最短补全词[力扣][Go]
每日一题---748. 最短补全词[力扣][Go]
每日一题---748. 最短补全词[力扣][Go]
|
Go Perl
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]
每日一题---689. 三个无重叠子数组的最大和[力扣][Go]
每日一题---689. 三个无重叠子数组的最大和[力扣][Go]
每日一题---689. 三个无重叠子数组的最大和[力扣][Go]
每日一题 --- 942. 增减字符串匹配[力扣][Go]
每日一题 --- 942. 增减字符串匹配[力扣][Go]
每日一题 --- 942. 增减字符串匹配[力扣][Go]