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