首页 > 数据结构 > Hash表 > POJ 2575 Jolly Jumpers [解题报告] Java
2013
11-11

POJ 2575 Jolly Jumpers [解题报告] Java

Jolly Jumpers

问题描述 :

A sequence of n > 0 integers is called a jolly jumper if the absolute values of the difference between successive elements take on all the values 1 through n-1. For instance,

1 4 2 3

is a jolly jumper, because the absolutes differences are 3, 2, and 1 respectively. The definition implies that any sequence of a single integer is a jolly jumper. You are to write a program to determine whether or not each of a number of sequences is a jolly jumper.

输入:

Each line of input contains an integer n < 3000 followed by n integers representing the sequence.

输出:

For each line of input, generate a line of output saying “Jolly” or “Not jolly”.

样例输入:

4 1 4 2 3
5 1 4 2 -1 6

样例输出:

Jolly
Not jolly

解题代码:

//* @author: [email protected]
import java.util.HashSet;
import java.util.Scanner;
public class Main
{
 public static void main(String[] args)
 {
  Scanner in=new Scanner(System.in);
  while(in.hasNext())
   {
	int a=in.nextInt();
	int[] b=new int[a];
	for(int i=0;i< a;i++)
		b[i]=in.nextInt();
	HashSet< Integer> h=new HashSet< Integer>();
	for(int i=1;i< a;i++)
		h.add(Math.abs(b[i]-b[i-1]));
	boolean bb=true;
	for(int i=1;i< a;i++)
	{
		if(!h.contains(i)){
                  bb=false;
		  break;
	        }
	}
	if(bb) System.out.println("Jolly");
	else System.out.println("Not jolly");
    }
  }
}