Aufeinanderfolgende Paare durch 3 teilbarJava

Java-Forum
Guest
 Aufeinanderfolgende Paare durch 3 teilbar

Post by Guest »

Das folgende Problem wurde während eines Interviews gefragt: < /p>

Bei einem Array von Ganzzahlen als Eingabe beträgt die Größe eines Arrays n < /code>.
Führen Sie die folgenden Schritte in einer Schleife aus, bis die ersten N-1 -elemente in der Liste mehrfach von 3.3. Index von Array i , starten Sie mit i = 0 und fahren Sie bis i = n-2 :
Array und Array [i+1 ] , wenn das Produkt durch 3 teilbar ist, ersetzen Sie das Array durch das Produkt, ansonsten ändern Sie es nicht.
Das letzte Element in der Die Liste kann kein Paar haben, sodass es nicht verarbeitet werden muss. /p>
Beispiel 1 < /h3>
Input: [34, 56, 20, 90, 100]
Output: 3
< /code>
Erläuterung < /h3>
Iteration 1: [34, 56, 1800, 9000, 100]
Iteration 2: [34, 100800, 16200000, 900000, 100]
Iteration 3: [3427200, 100800, 16200000, 90000000, 100]
< /code>
Daher beträgt die Anzahl der Iterationen 3. < /p>
Beispiel 2 < /h3>
Input: [1, 333, 222, 22]
Output: 1
< /code>
Erläuterung < /h3>
Iteration 1: [333, 333, 222, 22]
< /code>
Die ersten 3 Zahlen sind ein Vielfaches von 3. Daher. Daher beträgt die Anzahl der Iterationen 1. Code: < /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>
Es gab 8 Testfälle. Mein Code funktionierte nur für 2 Testfälle, während die verbleibenden Fehlern fehlschlug. Die fehlgeschlagenen Testfälle sind versteckt, daher kann ich sie nicht sehen.
Was ist der richtige Ansatz, um dieses Problem zu lösen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post