欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

欢乐的跳(洛谷P1152题目链接,Java语言描述)

程序员文章站 2022-07-13 14:09:36
...

题目要求

P1152题目链接

欢乐的跳(洛谷P1152题目链接,Java语言描述)

分析

我们要判重,就可以用数组或者说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");
    }
}