当前位置: 首页 > 工具软件 > go-bm > 使用案例 >

BM17 二分查找-I

袁单鹗
2023-12-01

请实现无重复数字的升序数组的二分查找

给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1

最基础的二分查找法,注意使用low + (high - low) / 2,防止加法溢出:

    public int search (int[] nums, int target) {
        // write code here
        int low = 0;
        int high = nums.length - 1;
        int middle = -1;

        while (low <= high){
            middle = low + (high - low) / 2;
            if (nums[middle] == target){
                return middle;
            } else if (nums[middle] > target){
                high = middle - 1;
            } else {
                low = middle + 1;
            }
        }
        
        return -1;
    }

 类似资料: