第一题
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class i1001 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
Set<Integer> set = new HashSet<Integer>();
for(int i =0;i<n;i++) {
int a = sc.nextInt();
set.add(a);
}
int m = sc.nextInt();
for(int i = 0;i<m;i++) {
int a = sc.nextInt();
if(set.contains(a)) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}
}
sc.close();
}
}
第二题
import java.util.Arrays;
import java.util.Scanner;
public class i1002 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
int[] arr = new int[n];
for(int i = 0;i<n;i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int k = sc.nextInt();
int i = 0;//用来算第几个最小,开始是0个
int temp = -1;//用来走数组下标
while(true) {
if(i==k) {
break;
}
temp++;//开始是0
if(i==0) {
i++;//有一个最小的了
}else {
if(arr[temp]!=arr[temp+1]) {
i++;
}
}
}
System.out.println(arr[temp]);
}
sc.close();
}
}
第三题
import java.util.Scanner;
public class i1003 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String s1 = sc.next();
String s2 = sc.next();
int[] arr = new int[10];//存牌
for(int i = 0;i<s1.length();i++) {
arr[s1.charAt(i)-'0']++;
}
//分析s2
//1 2 3 4的情况是一样的
if(s2.length()<5) {
int k = s2.charAt(0)-'0';
int flag = 0;//标记能不能打过
for(int i = k+1;i<10;i++) {
if(arr[i]>s2.length()) {
flag = 1;
break;
}
}
if(flag == 1) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}else {
int k = s2.charAt(0)-'0';
int flag = 0;
for(int i = k+1;i<10;i++) {
int sum = 0;
for(int j = 0;j<5;j++) {
if(arr[i+j]>0) {
sum++;
}else {
break;
}
}
if(sum == 5) {
flag = 1;
break;
}
}
if(flag == 1) {
System.out.println("YES");
}else {
System.out.println("NO");
}
}
}
sc.close();
}
}
第四题
借助队列实现BFS可以实现。