LC-数组-二分查找-704

二分查找

[left, right] 方式

  • [left, mid -1]
  • [mid + 1, right]
		int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = (left + right) / 2;
            //int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2
            if (nums[mid] > target) {
                right = mid - 1;
            } else if (nums[mid] < target) {
                left = mid + 1;
            } else return mid;
        }

//int middle = left + ((right - left) / 2);

// 防止溢出 等同于(left + right)/2

关于这一步的防止溢出,意义不大, Java中int的取值范围是2的32次方,最大值是2的31次方,最小值是负值的2的31次方-1

当数字这么大的时候,采取这样的查找方式是非常不合理的。

相关题目推荐

posted @ 2022-02-21 14:26  铭泽69  阅读(39)  评论(0)    收藏  举报