Als Ingenieur beschloss ich, die früheren Fragen von ** AtCoder ** zu lösen, da ich dachte, dass es notwendig sei, freiwillig zu studieren, um an Kraft zu gewinnen. Als ich jedoch den folgenden Code aufgrund des Problems des ** Sinkens in Japan ** einreichte, war ich wütend über ** Zeitlimit überschritten **.
JapanSinksTle.java
import java.io.*;
import java.util.*;
import static java.lang.System.in;
class Main{
public static void main(String[] args)throws IOException{
Scanner sc = new Scanner(System.in);
int field = sc.nextInt();
int jRyouiki[] = new int[field];
int high = 0;
for(int i = 0; i < field; i++){
jRyouiki[i] = sc.nextInt();
if(high < jRyouiki[i]){
high = jRyouiki[i];
}
}
int umi = 0;
int island = 0;
int islandcnt = 0;
int maxIsland = 0;
while(high > umi){
for(int i = 0; i < field; i++){
if(umi < jRyouiki[i]){
island = i + 1;
if(i == (field-1)){
islandcnt++;
}
}else{
if(island != 0 ){
islandcnt++;
}
island = 0;
}
}
if(islandcnt > maxIsland){
maxIsland = islandcnt;
}
umi++;
islandcnt = 0;
island = 0;
}
System.out.println(maxIsland);
}
}
Um klar zu sein, ist es wahrscheinlich ** die monotone Schleife verursacht längere Ausführungszeiten **. Bis jetzt dachte ich, es wäre gut, wenn ich es einfach verschieben könnte, aber ich werde versuchen, intelligenten Code anzuwenden, der nicht viel Verarbeitungslast verursacht.
Fortsetzen…
Recommended Posts