Добрый день, коллеги! По условию задачи необходимо написать метод, который принимает массив int и сдвигает все ненулевые элементы массива влево, а нулевые элементы переносит вправо. Также, если хотя бы один элемент был передвинут, метод возвращает true, иначе – false. Я реализовал метод следующим образом: private boolean compressRow(int[] row) { boolean isShift = false; for (int i = 0; i < row.length; i++) { if(row[i] == 0 && i != row.length-1) { for(int j = i+1; j < row.length; j++) { if(row[j] != 0) { int temp = row[j]; row[j] = row[i]; row[i] = temp; isShift = true; } } } } return isShift; } Проверил его со следующими вариантами входных данных: int[] array1 = {0, 2, 0, 2}; int[] array2 = {2, 0, 2, 2}; int[] array3 = {4, 4, 0, 2}; int[] array4 = {4, 2, 16, 0}; int[] array5 = {0, 0, 0, 0}; int[] array6 = {2, 4, 8, 32}; В результате метод ненулевые значения переносит влево, нулевые вправо, если была хотя бы одна перестановка возвращает true, иначе false. Я понимаю, что реализация не самая оптимальная, но она, на мой взгляд, соответствует условию задачи. Подскажите, пожалуйста, что я упустил? Заранее благодарю!