【发布时间】:2020-02-10 20:54:58
【问题描述】:
返回给定数组的一个版本,其中数组中的每个零值都被数组中零右侧的最大奇数值替换。如果零的右侧没有奇数,则将零保留为零。
public int[] zeroMax(int[] nums) {
int max = 0;
int temp = 0;
for(int i = 0; i < nums.length-1; i++){
if(nums[i] == 0){
for(int j = i+1; j < nums.length; j++){
if(nums[j] % 2 != 0) max = Math.max(HERE, nums[j]);
}nums[i] = max;
max = 0;
}
}
return nums;
}
这是我的问题代码,这里是我不太明白的地方。我必须把 max 放在那里,但在我看来,我也有可能把 0 放在那里。因为循环无论如何都会将 max 重置为 0,对吧?但是当我把 0 放在那里时,代码在某些情况下不起作用。 我错过了什么?
【问题讨论】: