私は倍の文字列の面で私に与えられている時間を追加する必要が面接の準備の質問をやっています。私は2つのループ、1つは時間を解析し、もう1つは秒と分を分けます。私が信じている2つのネストされたループは時間の複雑さをO(n^2)にします。私のルームメイトは、これはひどいコードである私に言うと、O(n)の時間で解くことができるが、私はどのように把握することはできません。どんな助けもありがとう。前もって感謝します。以下はこの問題の私のコードです。時間ネストされたwhileループの複雑さ?
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);
}
}