Переместить все нули в конец массива с сохранением порядка элементов.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Переместить все нули в конец массива с сохранением порядка элементов.

Сообщение Anonymous »

Может ли кто-нибудь сказать мне, что я сделал не так в этом коде?
При таком подходе я обхожу массив и, как только нахожу элемент 0, перехожу к элементу справа от 0 и замените его первым найденным элементом, отличным от 0.

Код: Выделить всё

class Solution {
public void moveZeroes(int[] nums) {
for (int i = 0; i < nums.length;i++) {
if (nums[i]==0) {
for(int j = i+1; j < nums.length;j++) {
if(nums[j]!=0) {
int temp = nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}
}

}
}
Для следующих входных данных
[0,1,0,3,12]
Ожидаемый результат:
[1,3,12,0,0]
Но я получаю
[12,3,1,0,0]

Подробнее здесь: https://stackoverflow.com/questions/765 ... -preserved
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»