写点什么

二分查找有序数组中的特定值

作者:jun
  • 2022 年 6 月 10 日
  • 本文字数:560 字

    阅读完需:约 2 分钟

1、题目背景

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回-1

2、代码实现

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; }}
复制代码

3、结果展示

6Process finished with exit code 0
复制代码


发布于: 刚刚阅读数: 4
用户头像

jun

关注

还未添加个人签名 2021.04.12 加入

IT行业 后端开发

评论

发布
暂无评论
二分查找有序数组中的特定值_数据结构与算法_jun_InfoQ写作社区