[JAVA] AtCoder s'appelle TLE et explique comment écrire du beau code

Le début de l'affaire

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

Cause et avenir

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

AtCoder s'appelle TLE et explique comment écrire du beau code
Comment écrire du bon code
Comment rédiger un code facile à comprendre [Résumé 3]
[Java] Comment sortir et écrire des fichiers!
Écrire du code difficile à tester
Code difficile à déboguer et à analyser
Promesse JDBC et exemple d'écriture
Écrire du code facile à maintenir (partie 1)
Comment écrire du code qui pense Ruby orienté objet
Écrire du code facile à maintenir (partie 4)
Comment écrire du code de test avec la certification de base
Écrire du code facile à maintenir (partie 3)
[Java] Types de commentaires et comment les rédiger
Pour implémenter, écrivez le test puis codez le processus
Comment écrire des rails
Comment écrire docker-compose
Comment écrire Mockito
Comment écrire un fichier de migration
Comment spécifier le code de caractère et le code de saut de ligne avec JAXB
[Code Golf] Dégonflez le code et soumettez-le à AtCoder [Compressed Golf]
Comment définir le code de caractère et le code de saut de ligne dans Eclipse
Comment écrire et noter lors de la migration de VB vers JAVA
Réfléchissez à la façon de diviser MVC en M et V
Comment rédiger un commentaire java
Comment écrire Junit 5 organisé
Comment écrire des graines de Rails
Comment écrire le routage Rails
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
À propos de TestSize préconisé par Google et comment réaliser TestSize par Java et Maven
Bases du développement Java ~ Comment écrire des programmes (variables et types) ~
Comment écrire un exemple d'implémentation F03 ruby et C en temps réel hors ligne
J'ai testé comment utiliser le test / l'unité de Ruby et le code de Janken.
Écrivons un code facile à maintenir (Partie 2) Nom