首页 > 其他分享 >二分查找

二分查找

时间:2022-12-29 23:01:20浏览次数:64  
标签:二分 target nums int 查找 数组

题目

题目地址
描述

请实现无重复数字的升序数组的二分查找

给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1

分析

二分查找的前提是数组是严格递增的,这样使用上下界法就可以,不断缩小范围。

实现

import java.util.*;
public class Solution {
    public int search (int[] nums, int target) {
        int l = 0;
        int r = nums.length - 1;
        //从数组首尾开始,直到二者相遇
        while(l <= r){ 
            //每次检查中点的值
            int m = (l + r) / 2; 
            if(nums[m] == target)
                return m;
            //进入左的区间
            if(nums[m] > target) 
                r = m - 1;
            //进入右区间
            else 
                l = m + 1;
        }
        //未找到
        return -1; 
    }
}

标签:二分,target,nums,int,查找,数组
From: https://www.cnblogs.com/happy-to-study/p/17013748.html

相关文章

  • 【LeeCode】34. 在排序数组中查找元素的第一个和最后一个位置
    【题目描述】给你一个按照非递减顺序排列的整数数组 ​​nums​​​,和一个目标值 ​​target​​。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目......
  • 【LeetCode数组#1二分查找】二分查找、搜索插入、在排序数组中查找元素的第一个和最后
    二分查找题目力扣704题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。......
  • 二分搜索与二分答案
    二分的本质序列要满足有序性或者有有序的性质:有单调性一定可以二分,没有单调性也可以进行二分;下面是两个模板;tips:mid=男左女右,男加1boolcheck(intx){/*...*/}//......
  • 二分算法
    二分算法题目合集题目来源难度袋子里数目最少的球力扣中等礼盒的最大甜蜜度力扣中等两球之间的磁力力扣中等机器人跳跃问题Acwing中等分......
  • 查找蓝牙WiFi功能,搜索名字并列举出来
    先有一个概念,蓝牙分为普通蓝牙和低功耗(BLE)蓝牙,低功耗蓝牙激活时信号和普通蓝牙信号一样,低功耗时必须搜索低功耗蓝牙信号如果使用普通代码搜索,不能搜索到低功耗蓝牙信号......
  • windows 根据父进程pid查找所有子进程id(C++)
    直接上代码:大家直接调用即可#include<iostream>#include<Windows.h>#include<tlhelp32.h>#include<string>#include<vector>usingnamespacestd;vector<DWORD>GetPro......
  • (转载)Windows 查找占用串口(COM)的进程
    原文地址:Windows查找占用串口(COM)的进程_weixin_42501466的博客-CSDN博客_如何查看串口被哪个程序占用查找占用串口的进程1、Win+R打开运行窗口2、输入regedi......
  • pytorch:二分类时的loss选择
    PyTorch二分类时BCELoss,CrossEntropyLoss,Sigmoid等的选择和使用这里就总结一下使用PyTorch做二分类时的几种情况:总体上来讲,有三种实现形式:最后分类层降至一维,使用sigmo......
  • vba-多列同时查找满足条件的行号
    我首先想到的非环版本要做到这一点(循环简单得多),是使用匹配(),但如果你有多个值使用A=Q或同日在那里,你可能会遇到一个问题。Dimi,jasIntegeri=Application.Match(RefC......
  • 二分查找
    一、二分查找1.二分查找方法概述二分查找是针对有序数组的一种查找方式。是利用(letf+right)/2=mid的方式来对半缩短搜索范围的一种方法,一次查找,搜索的范围就会减半。相......