首页
学习
活动
专区
圈层
工具
发布

每日一题 | 二分查找

二分查找(704. 简单难度)

题目来源

LeetCode 704. 二分查找[1]

题目描述

给定一个n个元素升序排列的整数数组nums和一个目标值target,请你在数组中搜索目标值,如果存在则返回其下标,否则返回-1。

示例

示例 1:

输入: nums =[-1,0,3,5,9,12], target =9输出:4解释:9出现在 nums 中,下标为4

示例 2:

输入: nums =[-1,0,3,5,9,12], target =2输出:-1解释:2不存在于 nums 中,返回-1

作者思考

二分查找的核心思想在于区间查找,且这个区间是不断折半的。

🧠 题解

// javaclass Solution {   public int search(int[] nums, int target) {       int low = 0;       int high = nums.length - 1;       int middle = 0;       while(low <= high){           middle = (high + low)/2;           if(nums[middle] == target) return middle;           if(nums[middle] > target){               high = middle - 1;           }           if(nums[middle] < target){               low = middle + 1;           }       }       return -1;   }}

References

[1]LeetCode 704. 二分查找:https://leetcode.cn/problems/binary-search/description/

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OZjJWuX_nqZrDwnSaA7rZ3dQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券