Ich mache eine Interviewvorbereitung Frage, wo ich Zeiten hinzufügen muss, die mir in Bezug auf eine Reihe von Zeiten gegeben sind. Ich habe zwei Loops, einen um die Zeiten zu analysieren und einen um die Minuten von den Sekunden zu trennen. Die zwei verschachtelten Schleifen machen, glaube ich, die Zeitkomplexität O (n^2). Meine Mitbewohner sagen mir, dass dies ein schrecklicher Code ist und in O (n) Zeit gelöst werden kann, aber ich kann nicht herausfinden, wie. Jede Hilfe wäre willkommen. Danke im Voraus. Unten ist mein Code für dieses Problem.Zeit Komplexität von verschachtelten While-Schleifen?
import java.io.*;
import java.util.*;
class Solution {
public static void main(String[] args) {
String x = "12:32 34:01 15:23 9:27 55:22 25:56";
String[] time = new String[6];
int[] mins = new int[6];
int[] secs = new int[6];
int hourTotal = 0;
int minTotal = 0;
int secTotal = 0;
Scanner scan = new Scanner(x);
scan.useDelimiter(" ");
int i = 0;
while(scan.hasNext() == true){
time[i] = scan.next();
Scanner scanz = new Scanner(time[i]);
scanz.useDelimiter(":");
int diff = 0;
while(scanz.hasNext() == true){
mins[i] = scanz.nextInt();
secs[i] = scanz.nextInt();
minTotal = minTotal + mins[i];
secTotal = secTotal + secs[i];
}
while(secTotal >= 60){
if(secTotal >= 60){
secTotal = secTotal - 60;
minTotal++;
}
}
while(minTotal >= 60){
if(minTotal >= 60){
minTotal = minTotal - 60;
hourTotal++;
}
}
}
i++;
System.out.print(hourTotal + ":" + minTotal + ":" + secTotal);
}
}