欢乐的跳(洛谷P1152题目链接,Java语言描述)
程序员文章站
2022-07-13 14:09:36
...
题目要求
分析
我们要判重,就可以用数组或者说HashSet,最近很久用Set和Map用的有点上头,没办法,就选HashSet吧。
思路是既然num个相邻数的差值要涵盖1~num-1之间的所有数值吧,那重复或者越界就是"Not jolly",如果都不重复还不越界,那肯定是恰好合适啦,那就是"Jolly"呗,很简单。
注意用数组要防止越界。
AC代码(Java语言描述)
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
Set<Integer> set = new HashSet<>(1000);
int prev = scanner.nextInt();
for (int i = 1; i < num; i++) {
int temp = scanner.nextInt(), abs = Math.abs(prev-temp);
if (abs >= num || set.contains(abs)) {
System.out.println("Not jolly");
return;
} else {
prev = temp;
set.add(abs);
}
}
scanner.close();
System.out.println("Jolly");
}
}