[JAVA] AtCoder heißt TLE und spricht darüber, wie man schönen Code schreibt

Der Anfang der Sache

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);
    }
}

Ursache und Zukunft

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

AtCoder heißt TLE und spricht darüber, wie man schönen Code schreibt
Wie man guten Code schreibt
So schreiben Sie leicht verständlichen Code [Zusammenfassung 3]
[Java] Wie man Dateien ausgibt und schreibt!
Schreiben Sie Code, der schwer zu testen ist
Code, der schwer zu debuggen und zu analysieren ist
JDBC Versprechen und Schreibbeispiel
Schreiben Sie einfach zu wartenden Code (Teil 1)
Wie man Code schreibt, der objektorientiertes Ruby denkt
Schreiben Sie einfach zu pflegenden Code (Teil 4)
So schreiben Sie Testcode mit Basic-Zertifizierung
Schreiben Sie einfach zu wartenden Code (Teil 3)
[Java] Arten von Kommentaren und wie man sie schreibt
Schreiben Sie zur Implementierung den Test und codieren Sie den Prozess
Wie schreibe ich Rails
Wie schreibe ich Docker-Compose
Wie schreibe ich Mockito
So schreiben Sie eine Migrationsdatei
So legen Sie mit JAXB Zeichencode und Zeilenvorschubcode fest
[Code Golf] Entleeren Sie den Code und senden Sie ihn an AtCoder [Compressed Golf]
So legen Sie den Zeichencode und den Zeilenvorschubcode in Eclipse fest
Schreiben und Notizen bei der Migration von VB zu JAVA
Überlegen Sie, wie Sie MVC in M und V unterteilen können
Wie schreibe ich einen Java-Kommentar
Wie schreibe ich Junit 5 organisiert
Wie schreibe ich Rails Seed
Wie schreibe ich Rails Routing
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
Informationen zu TestSize, das von Google empfohlen wird, und zur Realisierung von TestSize durch Java und Maven
Grundlagen der Java-Entwicklung ~ Schreiben von Programmen (Variablen und Typen) ~
Offline-Echtzeit zum Schreiben eines F03-Ruby- und C-Implementierungsbeispiels
Ich habe getestet, wie man Rubys Test / Gerät und Janken's Code verwendet.
Schreiben wir einen Code, der einfach zu pflegen ist (Teil 2)