二分查找有序数组中的特定值
1、题目背景
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回-1
2、代码实现
复制代码
3、结果展示
复制代码
版权声明: 本文为 InfoQ 作者【jun】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac92a85e931021961779fa14b】。文章转载请联系作者。
本文字数:560 字
阅读完需:约 2 分钟
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回-1
public class Solution {
public static void main(String[] args) {
int[] nums = new int[]{-2, 1, -3, 4, -1, 2, 1, -5, 4}; System.out.println(search(nums, 1)); }
/** * 给定一个n个元素有序的(升序)整型数组nums和一个目标值target * 写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1 * @param nums * @param target * @return */ public static int search(int[] nums, int target) {
if (target < nums[0] || target > nums[nums.length - 1]) { return -1; } int left = 0, right = nums.length - 1; while (left <= right) { int mid = left + ((right - left) >> 1); if (nums[mid] == target) return mid; else if (nums[mid] < target) left = mid + 1; else if (nums[mid] > target) right = mid - 1; } return -1; }}
6Process finished with exit code 0
版权声明: 本文为 InfoQ 作者【jun】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac92a85e931021961779fa14b】。文章转载请联系作者。
还未添加个人签名 2021.04.12 加入
IT行业 后端开发

促进软件开发及相关领域知识与创新的传播
京公网安备 11010502039052号

评论