二分查找(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/