【发布时间】:2020-02-08 21:30:14
【问题描述】:
对于给定数组中的每个 10 的倍数,将其后面的所有值更改为 10 的倍数,直到遇到另一个 10 的倍数。所以 {2, 10, 3, 4, 20, 5} 产生 {2 , 10, 10, 10, 20, 20}。
我不明白为什么会这样。在我看来,{1, 10, 2, 2} 的输出应该是 {1, 10, 10, 2},因为 for 循环应该只检测 %10 == 0 一次,然后循环返回而不检测它下次。为什么它不止一次这样做?
public int[] tenRun(int[] nums) {
for (int i = 0; i < nums.length-1; i++) {
if (nums[i] % 10 == 0) {
if (nums[i+1] % 10 != 0) {
nums[i+1] = nums[i];
}
}
}
return nums;
}
【问题讨论】: