これは私がkattisで解決しようとしている課題です。 challenge。 私の考えは、jackが所有するすべてのCDを配列に格納してから、jillが所有するすべてのcdの配列をバイナリ検索することです。 検索でtrueが返された場合は、カウンタをインクリメントします。 そうでない場合、私は何もしません。 これは、このソリューションでは、第二のテストケースを失敗しなぜこのソリューションは使えませんか?
import java.util.*;
import java.util.Scanner;
public class Hello {
public static void main(String [] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[] narr = new int[n];
for (int i = 0; i<n; i++){
narr[i] = in.nextInt();
}
int count = 0;
for (int i=0; i< m; i++){
int val = in.nextInt();
int lo =0;
int hi = n-1;
while(lo<=hi){
int md = lo + (hi - lo)/2;
if (val<narr[md]) hi =md-1;
else if(val>narr[md]) lo = md+1;
else{
count++;
break;
}
}
}
System.out.println(count);
in.close();
}
}
私の解決策です。私はインターネット上で同様のソリューションを見てきました。このようにlink 私に何が足りないのか教えてください。
ありがとうございました。
また、ジャックのCDを格納するためにhashSetを使用して、そのセットにJillsのいずれかが含まれている場合はカウンタをインクリメントしました。 このソリューションは、2番目のテストケースでも失敗します。
ようこそスタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –
ありがとうございました。私は学ぶべきことがたくさんある。 – ibukun