NOI的1.6.7有趣的跳跃

描述
一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定给定序列是否存在“有趣的跳跃”。

输入
一行,第一个数是n(0 < n < 3000),为序列长度,接下来有n个整数,依次为序列中各元素,各元素的绝对值均不超过1,000,000,000。
输出
一行,若该序列存在“有趣的跳跃”,输出"Jolly",否则输出"Not jolly"。
样例输入
4 1 4 2 3
样例输出
Jolly

解法:(利用Arrays.sort()排序)

import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int n=in.nextInt();
	int a[]=new int [n];//a表示n个正数的一维数组
	int b[]=new int [n-1];//排序后n-1个整数的一维数组
	if(n==1) {
		//任何只包含单个元素的序列一定存在“有趣的跳跃”
		System.out.println("Jolly");
	}
	else {
	for(int i=0;i<n;i++) {
		a[i]=in.nextInt();//输入n个整数
	}
	for(int i=0;i<n;i++) {
		for(i=0;i<n-1;i++) {
			b[i]=Math.abs(a[i+1]-a[i]);
		}
	}
	Arrays.sort(b);//对于b的一维数组进行排序
	int j=1;
	for(int i=0;i<n-1;i++,j++) {
		if(b[i]!=j){
			System.out.println("Not jolly");
			break;//当不满足条件则用break终止循环
		}
		else {
			if(i==n-2) {//当全部满足条件且循环到最后n-2时可以输出结果
				System.out.println("Jolly");
			}
		}
	}	
  }
}
}

重点:利用Arrays.sort()给一维数组进行排序(或者使用冒泡排序)

发布了56 篇原创文章 · 获赞 51 · 访问量 1310

猜你喜欢

转载自blog.csdn.net/weixin_45455503/article/details/104291458
今日推荐