Codingbat Array2 zeroMax - PullRequest
       4

Codingbat Array2 zeroMax

0 голосов
/ 10 февраля 2020

Возвращает версию данного массива, в которой каждое нулевое значение в массиве заменяется наибольшим нечетным значением справа от нуля в массиве. Если справа от нуля нет нечетного значения, оставьте ноль как ноль.

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 там. Потому что l oop сбрасывает макс в 0 в любом случае, верно? Но когда я ставлю 0 там, код не работает для некоторых случаев. Чего мне не хватает?

1 Ответ

1 голос
/ 10 февраля 2020
max = Math.max( max, nums[j] );

Этот код будет принимать большее из двух значений: max или nums[j].

max = Math.max( 0, nums[j] );

Этот код будет принимать любое положительное значение nums[j] (так как он больше 0). Имейте в виду, что это в 1010 *. max будет постоянно обновляться, чтобы содержать наибольшее число. Он будет сброшен только после завершения операции l oop.

...