[JAVA] J'ai essayé de résoudre la recherche binaire d'AOJ

Bonjour Il s'agit de skanehira de Global Sense Co., Ltd..

Cette fois, j'ai essayé de résoudre la [Recherche binaire] d'AOJ (http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_4_B&lang=jp). Quand j'ai vu le titre, j'ai pensé que ce serait difficile C'était étonnamment facile ...

problème

image.png

En résumé Indiquez le nombre de valeurs de la colonne numérique de la 4e ligne incluses dans la colonne numérique de la 2e ligne. C'est le contenu.

La source

Pour être honnête, je n'ai pas besoin de saisir les première et troisième lignes ... Je ne veux pas prendre la peine de l'ignorer.

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        try (Scanner scan = new Scanner(System.in)) {
            //sauter
            scan.nextLine();

            //Stocker la cible de recherche dans la carte
            Map<String, String> map = new HashMap<String, String>();
            for (String num : scan.nextLine().split(" ")) {
                map.put(num, "");
            }

            //sauter
            scan.nextLine();

            //Compter s'il y a une cible de recherche
            int count = 0;
            for (String num : scan.nextLine().split(" ")) {
                if (map.containsKey(num)) {
                    count++;
                }
            }

            System.out.println(count);
        }

    }

}

** Comment résoudre **

for (int i : targetNums) {
    for (int j : nums) {
        if (i = j) count++;
    }
}

Stockez les 2e et 4e lignes dans un tableau Je me suis demandé si je pouvais aller en comparant tout en tournant. Il est inefficace de doubler l'instruction for J'ai décidé d'utiliser la carte.

Le traitement devrait être plus rapide si la cible de recherche est la clé de la carte et que la vérification de la clé est effectuée! (Bien que non vérifié)

Je me demande s'il existe un autre moyen plus efficace ...

Recommended Posts

J'ai essayé de résoudre la recherche binaire d'AOJ
J'ai essayé de résoudre Small, Large ou Equal d'AOJ
[Java] J'ai essayé de mettre en œuvre la recherche de produits de l'API Yahoo
J'ai essayé de vérifier yum-cron
J'ai essayé de mâcher C # (indexeur)
J'ai essayé quelque chose qui s'appelle la recherche récursive
J'ai essayé de résumer le support d'iOS 14
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
J'ai essayé de résumer l'apprentissage Java (1)
J'ai essayé de résumer Java 8 maintenant
C # (polymorphisme: polymorphisme)
J'ai essayé d'expliquer Active Hash
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé de résumer les méthodes utilisées
J'ai essayé de migrer le traitement vers VS Code
J'ai essayé de résumer les expressions Java lambda
J'ai essayé de démarrer avec Web Assembly
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
J'ai essayé de construire AdoptOpenjdk 11 sur CentOS 7
Qu'est-ce que Docker? J'ai essayé de résumer
J'ai essayé d'utiliser Selenium comme JQuery
J'ai essayé de toucher JavaScript Part.2 orienté objet
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de résumer sur JVM / garbage collection
J'ai essayé de faire une authentification de base avec Java
J'ai essayé d'implémenter des relations polymorphes à Nogizaka.
Introduction aux algorithmes avec java-Search (recherche complète, recherche de bisection)
J'ai essayé de gérer la configuration des jambes de force avec Coggle
Recherche binaire Méthode de recherche dichotomisée
J'ai essayé de gérer les informations de connexion avec JMX
J'ai essayé d'organiser la session en Rails
java j'ai essayé de casser un simple bloc
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)
Méthode de recherche
J'ai essayé de développer un site Web pour étudier DUO3.0.
C # (base de l'encapsulation)
J'ai essayé de créer une application de clonage LINE
J'ai essayé Spring.
J'ai essayé de construire AdoptOpenJDK 8 (ajout: Amazon Corretto 8 également)
[API] J'ai essayé d'utiliser l'API de recherche par code postal
[Notions de base sur Ruby] J'ai essayé d'apprendre des modules (Chapitre 1)
J'ai essayé de mettre Tomcat
Méthode de recherche par bisection
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
J'ai essayé youtubeDataApi.
J'ai essayé de lier JavaFX et Spring Framework.
J'ai essayé de refactoriser ①
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé de développer une application en 2 langues
J'ai essayé de créer une compétence Alexa avec Java