Последовательные пары делится на 3JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Последовательные пары делится на 3

Сообщение Anonymous »

Учитывая массив целых чисел в качестве входных данных, размер массива составляет n. < /p>
Выполните приведенные ниже шаги в цикле до тех пор, пока первые элементы n-1 в списке не являются кратными 3. > и массив [i+1] , если продукт делится на 3, то замените массив на продукт, иначе не изменяйте его.
< P> Последний элемент в списке не может иметь пары, поэтому не нужно ее обрабатывать. 3.
Пример:

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

Input: [34, 56, 20, 90, 100]
Output: 3
Объяснение:

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

Iteration 1: {34 56 1800 9000 100}
Iteration 2: {34 100800 16200000 900000 100}
Iteration 3: {3427200 100800 16200000 90000000 100}
Следовательно, число итераций составляет 3.
Пример#2
Input: [1, 333, 222, 22]
Output: 1
< /code>
Объяснение:
Round 1: {333 333 222 22}
Первые 3 числа являются множеством 3. Следовательно, число итераций составляет 1. < /p >
Вот мой код: < /p>
public class Main {

public static int solve(int[] a) {
int n = a.length;
int rounds = 0;

while (true) {
boolean allMultiplesOfThree = true;

// Check if the first n-1 elements are already multiples of 3
for (int i = 0; i < n - 1; i++) {
if (a % 3 != 0) {
allMultiplesOfThree = false;
break;
}
}

// If all first n-1 elements are multiples of 3, return the rounds count
if (allMultiplesOfThree) {
return rounds;
}

// Increment rounds and update the array in place
rounds++;
for (int i = 0; i < n - 1; i++) {
int product = a * a[i + 1];
if (product % 3 == 0) {
a = product;
}
}
}
}

public static void main(String[] args) {
int[] input1 = {34, 56, 20, 90, 100};
System.out.println(solve(input1)); // Expected: 3

int[] input2 = {1, 333, 222, 22};
System.out.println(solve(input2)); // Expected: 1
}
}
< /code>
Эта проблема задается во время собеседования, было 8 тестовых случаев, мой код работал только для 2 тестовых случаев, оставшиеся не удалились (неудачные тестовые случаи скрыты, поэтому я не могу их видеть )
Какой правильный подход для решения этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/794 ... sible-by-3
Ответить

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

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

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

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

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