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

题目要求

P1152题目链接

在这里插入图片描述

分析

我们要判重,就可以用数组或者说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");
    }
}
发布了396 篇原创文章 · 获赞 654 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104099308
今日推荐