En tant qu'ingénieur, j'ai décidé de commencer à résoudre les questions passées de ** AtCoder **, pensant qu'il était nécessaire d'étudier volontairement pour gagner en force. Cependant, lorsque j'ai soumis le code suivant en raison du problème de ** naufrage au Japon **, j'étais en colère contre ** Time Limit Exceeded **.
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);
}
}
Pour être clair, c'est probablement ** la boucle monotone entraîne des temps d'exécution plus longs **. Jusqu'à présent, je pensais que ce serait bien si cela fonctionnait, mais j'essaierai d'appliquer un code intelligent qui ne met pas beaucoup de charge de traitement.
Continuer…
Recommended Posts