【发布时间】:2026-02-09 12:45:01
【问题描述】:
我在研究一段代码时遇到了“i = -1”,我无法弄清楚它在场景中的意义。
代码的重点是对数组从小到大排序,求最大和最小数的差。
public int bigDiff(int[] nums) {
int answer = 0;
for (int i = 0; i < nums.length - 1; i++){
if (nums[i] > nums[i + 1]){
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
i = -1;
}
}
return (nums[nums.length - 1] - nums[0]);
}
提前致谢!
【问题讨论】:
-
它从数组的开头重新开始循环。
-
它使 i 变为 -1,然后 i++ 被执行,所以 i 再次变为 0,这意味着它从头开始。
-
请注意,这看起来像是冒泡排序的一种实现,被广泛认为是一种低效算法。
-
或许这不言而喻,但算法效率很低。它使用冒泡排序只是从数组中的最小元素中减去最大元素。
-
我觉得像这样修改循环索引变量是有问题的。
标签: java for-loop bubble-sort