Java Codingbat notAlone - почему это не работает для этого конкретного примера

  

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

     

notAlone ([1, 2, 3], 2) → [1, 3, 3]

     

notAlone ([1, 2, 3, 2, 5, 2], 2) → [1, 3, 3, 5, 5, 2]

     

notAlone ([3, 4], 3) → [3, 4]

public int[] notAlone(int[] nums, int val) {
  for(int k = 1 ; k<nums.length; k++)
  {
    if(k!= nums.length-1)
    {
      int max = nums[k];
      if(nums[k-1]>nums[k])
        max = nums[k-1];
      else if(nums[k+1] > nums[k])
        max = nums[k+1];
      if(nums[k-1] != nums[k] && nums[k] != nums[k+1])
        nums[k] = max;
    }
  }
  return nums;
}

Когда я запускал это на codingbat, это работало для всех примеров, кроме этого: notAlone ([1, 2, 3, 2, 5, 2], 2) должен вернуть [1, 3, 3, 5, 5, 2], но вместо этого мой вернулся [1, 3, 3, 3, 5, 2 ].

Я действительно застрял в том, как решить эту проблему, потому что, на мой взгляд, то, что я написал, должно работать и для этого конкретного примера, но, очевидно, это не так. Откуда моя ошибка? Как мне переписать мой код? Любая помощь будет принята с благодарностью!

4 голоса | спросил herminny 24 62018vEurope/Moscow11bEurope/MoscowSat, 24 Nov 2018 18:43:51 +0300 2018, 18:43:51

1 ответ


0
Вы слишком усложнили это.Вам нужно только найти ---- +: = 0 =: + ---- предыдущих и следующих элементов, если текущий элемент должен быть заменен:Кстати, в вашем решении вы игнорируете данное значение ( ---- +: = 2 =: + ---- ):Вернуть версию данного массива, где заменяется каждый экземпляр данного значения, который один ...Это не причина, почему ваш код потерпел неудачу в данном случае.Вы просто не нашли правильный максимум:Когда ---- +: = 3 =: + ---- :Если вы заменили эти 5 строк:вы бы получили правильный вывод.
ответил Eran 24 62018vEurope/Moscow11bEurope/MoscowSat, 24 Nov 2018 18:51:15 +0300 2018, 18:51:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132