以下是重写后的二分查找算法:

public int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; while (left <= right) { int mid = left + (right - left) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; }

主要的修改包括:

  1. 用 left 和 right 代替 l 和 r,使代码更加易读。

  2. 使用 left + (right - left) / 2 计算 mid 值,避免了 l + r 可能溢出的问题。

  3. 将相等的情况放在最前面判断,以便提前返回结果,提高效率。

  4. 将所有的 if-else 语句都使用花括号括起来,使代码更加规范。

重写一下这段的二分查找算法:public int searchint nums int target int l = 0 r = numslength - 1; whilel = r int mid = l + r 2; ifnumsmid target l = mid + 1;

原文地址: http://www.cveoy.top/t/topic/bLxe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录