LeetCode(704)二分查找?
2024-01-09 14:52:20
给定一个?n
?个元素有序的(升序)整型数组?nums
?和一个目标值?target
??,写一个函数搜索?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
经典二分,直接上代码
class Solution {
public int search(int[] nums, int target) {
int l = -1, r = nums.length;
while (l + 1 != r) {
int mid = (l + r) / 2;
if (nums[mid] < target)
l = mid;
else
r = mid;
}
return r == nums.length || nums[r] != target ? -1 : r;
}
}
class Solution {
public int search(int[] nums, int target) {
int l = -1, r = nums.length - 1;
while (l + 1 != r) {
int mid = (l + r) / 2;
if (nums[mid] < target)
l = mid;
else
r = mid;
}
return nums[r] != target ? -1 : r;
}
}
文章来源:https://blog.csdn.net/m0_48590589/article/details/135478829
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!