[JAVA] Ich habe versucht, AOJs binäre Suche zu lösen

Hallo Dies ist Skanehira von Global Sense Co., Ltd..

Dieses Mal habe ich versucht, AOJs [Binäre Suche] zu lösen (http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_4_B&lang=jp). Als ich den Titel sah, dachte ich, dass es schwierig sein würde Es war unerwartet einfach ...

Problem

image.png

Zusammenfassend Geben Sie aus, wie viele Werte in der Zahlenspalte in der 4. Zeile in der Zahlenspalte in der 2. Zeile enthalten sind. Es ist der Inhalt.

Quelle

Um ehrlich zu sein, muss ich nicht die erste und dritte Zeile eingeben ... Ich möchte nicht die Mühe machen, es zu überspringen.

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)) {
            //überspringen
            scan.nextLine();

            //Speichern Sie das Suchziel in der Karte
            Map<String, String> map = new HashMap<String, String>();
            for (String num : scan.nextLine().split(" ")) {
                map.put(num, "");
            }

            //überspringen
            scan.nextLine();

            //Zählen Sie, ob es ein Suchziel gibt
            int count = 0;
            for (String num : scan.nextLine().split(" ")) {
                if (map.containsKey(num)) {
                    count++;
                }
            }

            System.out.println(count);
        }

    }

}

** Wie löst man **

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

Speichern Sie die 2. und 4. Zeile in einem Array Ich fragte mich, ob ich vergleichen könnte, während ich herumwirbelte. Es ist ineffizient, die for-Anweisung zu verdoppeln Ich habe mich für die Karte entschieden.

Die Verarbeitung sollte schneller sein, wenn das Suchziel der Kartenschlüssel ist und die Schlüsselprüfung durchgeführt wird! (Obwohl nicht verifiziert)

Ich frage mich, ob es einen anderen effizienteren Weg gibt ...

Recommended Posts

Ich habe versucht, AOJs binäre Suche zu lösen
Ich habe versucht, AOJs Small, Large oder Equal zu lösen
[Java] Ich habe versucht, die Yahoo API-Produktsuche zu implementieren
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, C # (Indexer) zu kauen.
Ich habe etwas versucht, das als rekursive Suche bezeichnet wird
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
C # (Polymorphismus: Polymorphismus)
Ich habe versucht, Active Hash zu erklären
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Ich habe versucht, das Paiza-Kampagnenproblem "Herausforderung von Phantomdieb 813" zu lösen.
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Processing auf VS Code zu migrieren
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe versucht, mit Web Assembly zu beginnen
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Was ist Docker? Ich habe versucht zusammenzufassen
Ich habe versucht, Selen wie JQuery zu verwenden
Ich habe versucht, JavaScript Part.2 Objektorientiert zu berühren
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich habe versucht, über JVM / Garbage Collection zusammenzufassen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
Einführung in Algorithmen mit Java-Suche (Vollsuche, Halbierungssuche)
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
Dichotomisierte Suchmethode für die binäre Suche
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
Ich habe versucht, die Sitzung in Rails zu organisieren
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
Suchmethode
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
C # (Grund der Kapselung)
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe es mit Spring versucht.
Ich habe versucht, AdoptOpenJDK 8 zu erstellen (zusätzlich: Amazon Corretto 8)
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
[Ruby-Grundlagen] Ich habe versucht, Module zu lernen (Kapitel 1)
Ich habe versucht, Tomcat zu setzen
Bisektionssuchmethode
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, JavaFX und Spring Framework zu verknüpfen.
Ich habe versucht, ① umzugestalten
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen