Я работаю над Java-программой
вот программа Вопрос:
Рассмотрим программу Java.
Он читает целые числа из стандартного ввода (пока не получит отрицательное число) и
помещает их в массив.
После этого он вызывает processArray для массива,
и затем выводит содержимое массива на стандартный вывод.
в программе любая последовательность из двух или более последовательных
нечетные числа в массиве удаляются из массива и заменяются одним числом, представляющим длину этой последовательности. Функция / метод processArray должны модифицировать массив на месте (желательно без создания нового массива) и возвращать новую длину измененного массива.
Например, если эти цифры были указаны на стандартном входе:
222
3
35
62
124
61
29
375
66
7
-1
Тогда программа должна вывести:
222
2
62
124
3
66
7
Обратите внимание, что последовательность 3, 35 была заменена на 2, а последовательность 61, 29, 375 была заменена на 3.
вот мой код :
import java.util.*;
import java.io.*;
public class Main {
public static int processArray(ArrayList<Integer> array) {
ListIterator<Integer>iterator=array.listIterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
int count=0;
if (integer%2!=0) {
count=count++;
iterator.remove();
continue;
}
if(integer==-1)
break;
else
iterator.previous();
iterator.add(count);
iterator.next();
}
return array.size();
}
public static void main (String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
while(in.hasNextInt()) {
int num = in.nextInt();
if (num < 0)
break;
arrayList.add(new Integer(num));
}
int new_length = processArray(arrayList);
for(int i=0; i<new_length; i++)
System.out.println(arrayList.get(i));
}
}
Моя логика не работает. Помогите улучшить логику