首页 > 其他分享 >[LeetCode] LeetCode704. 二分查找

[LeetCode] LeetCode704. 二分查找

时间:2023-12-19 20:36:19浏览次数:34  
标签:二分 nums int LeetCode704 mid 查找 LeetCode left

题目描述

思路

基础二分查找模板的考察。

方法一:

class Solution {
    public int search(int[] nums, int target) {
        if (nums == null || nums.length == 0) return -1;
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (target == nums[mid]) return mid;
            else if (target < nums[mid]) right = mid - 1;
            else if (target > nums[mid]) left = mid + 1;
        }
        return -1;
    }
}

标签:二分,nums,int,LeetCode704,mid,查找,LeetCode,left
From: https://www.cnblogs.com/keyongkang/p/17914658.html

相关文章

  • [LeetCode Hot 100] LeetCode33. 搜索旋转排序数组
    题目描述思路如果nums[left]<=nums[mid],则[left,mid]有序如果nums[left]>nums[mid],则[mid,right]有序方法一:classSolution{publicintsearch(int[]nums,inttarget){if(nums==null||nums.length==0)return-1;intleft=0,ri......
  • [LeetCode Hot 100] LeetCode35. 搜索插入位置
    题目描述思路基础二分搜索模板本质:找到第一个大于等于target的元素的下标注意:该题目不存在重复元素存在一种特殊情况:target>nums的最大值,此时插入的位置正好是left的位置方法一:classSolution{publicintsearchInsert(int[]nums,inttarget){if......
  • [LeetCode Hot 100] LeetCode34.在排序数组中查找元素的第一个和最后一个位置
    题目描述思路:二分查找之寻找左右侧边界两个关键点:1.数组有序;2.时间复杂度O(logn)方法一:classSolution{publicint[]searchRange(int[]nums,inttarget){if(nums.length==0||nums==null){returnnewint[]{-1,-1};}......
  • 局部最小问题(二分查找)
    二分查找局部最小问题思路来源一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础笔记内容问题描述:对于一个数组,相邻值不等。查找出该数组中满足局部最小的值。局部最小:x[0]<x[1]2x[n-1]<x[n-2]x[i-1]>x[i]&&x[i+1]>x[i]算法思路:首先检测......
  • 【算法模版】二分查找
    1.简介故事分享......
  • #yyds干货盘点# LeetCode程序员面试金典:有序矩阵中第 K 小的元素
    题目给你一个nxn矩阵matrix,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个不同的元素。你必须找到一个内存复杂度优于O(n2)的解决方案。 示例1:输入:matrix=[[1,5,9],[10,11,13],[12,13,15]],k=8输......
  • Arrays工具类二分查找方法binarySearch方法详解​
    Arrays工具类二分查找方法binarySearch方法详解基础知识该方法的一般形式是publicstatic<T>intbinarySearch(T[]a,Tkey),对于基本类型,都有相应的重载方法,如针对int类型有binarySearch(int[]a,intkey)等。该方法的原理是使用二分查找算法在指定的数组中搜索指定的值。在调......
  • 代码随想录算法训练营第四天| LeetCode24. 两两交换链表中的节点、19.删除链表的倒数
     LeetCode24.两两交换链表中的节点●今日学习的文章链接和视频链接代码随想录(programmercarl.com)题目链接24.两两交换链表中的节点-力扣(LeetCode)●自己看到题目的第一想法主要是把这个过程想清楚,链表交换的题目主要想明白要动几个指针,指针改变的顺序也要注意,如果......
  • 【LeetCode】2288. 价格减免
    一、题目描述句子是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号'$'。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个价格。例如"$100"、"$23"和"$6.75"表示价格,而"100"、"$"和"2$3"不是。注意:......
  • #yyds干货盘点# LeetCode程序员面试金典:组合总和 Ⅳ
    题目给你一个由不同整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合32位整数范围。 示例1:输入:nums=[1,2,3],target=4输出:7解释:所有可能的组合为:(1,1,1,1)(1,1,2)(1,2,1)......