欢乐的跳——快看,远处的学妹正向你慢慢走来
Posted Fearless→
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欢乐的跳——快看,远处的学妹正向你慢慢走来相关的知识,希望对你有一定的参考价值。
解题前言(!!!重点!!!)
在我个人看来,这道题在众多编程题中应该属于相对简单的一道。对于入门编程不久的我而言,虽然已经解出此题,但是其中的算法还有很多地方需要优化。这里就希望各位“工程师”在评论区积极讨论一番,我们一起学习学习。本人在此表示热烈欢迎!!!
题目描述
一个n个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了[1 , n - 1]之间的所有整数,则称之符合“欢乐的跳”,如数组1 4 2 3符合“欢乐的跳”,因为差的绝对值分别为:3,2,1。
给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
输入格式
每组测试数据第一行以一个整数n(1 ≤ n ≤ 1000)开始,接下来n个空格隔开的在[-10^8 , −10^8]之间的整数。
输出格式
对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出"Jolly",否则输出"Not jolly"。
输入输出样例
输入##1
4 1 4 2 3
输出##1
Jolly
输入##2
5 1 4 2 -1 6
输出##2
Not jolly
Java题解
public class HappyJump {
public static void main(String[] args) {
// 人工创建初始数组arr1
int[] arr1 = array();
// 求数组中相邻元素差的绝对值的数组arr2
int[] arr2 = chaDeJueDuiZhi(arr1);
// 将arr2升序排序,为与arr3对比做准备
java.util.Arrays.sort(arr2);
// 创建对比升序梯度数组arr3,与arr2对比(懂得都懂)
int[] arr3 = gradientArray(arr2.length);
// 对比结果
String result = arrayContrast(arr2, arr3);
// 输出结果
System.out.println(result);
}
// 人工创建一维整型数组
public static int[] array() {
java.util.Scanner reader = new java.util.Scanner(System.in);
// 数组长度n
int n = reader.nextInt();
// 控制n输入的范围(1 <= n <= 1000)
if(n < 1 || n > 1000)
System.exit(0);
// 手动输入数组元素
int[] arr = new int[n];
for(int i = 0; i < arr.length; i ++) {
arr[i] = reader.nextInt();
// 控制arr[i]输入的范围(-10^8 <= arr[i] <= 10^8)
if(arr[i] < -100000000 || arr[i] > 100000000)
System.exit(0);
}
return arr;
}
// 求数组相邻元素差的绝对值的数组
public static int[] chaDeJueDuiZhi(int[] array) {
int[] arr = new int[array.length - 1];
for(int i = 0; i < array.length - 1; i ++) {
if(array[i] > array[i + 1])
arr[i] = array[i] - array[i + 1];
else
arr[i] = array[i + 1] - array[i];
}
return arr;
}
// 创建升序梯度一维整型数组
public static int[] gradientArray(int x) {
int[] arr = new int[x];
for(int i = 0; i < arr.length; i ++) {
arr[i] = i + 1;
}
return arr;
}
// 数组元素对比,前提保证数组长度相同
public static String arrayContrast(int[] array1, int[] array2) {
// 保证数组长度相同
if(array1.length != array2.length)
return "数组对比时,两数组长度不同,错误!!!";
for(int i = 0; i < array1.length; i ++) {
if(array1[i] != array2[i])
return "Not jolly";
}
return "Jolly";
}
}
结束语
最后还是希望大家在评论区积极讨论呀!
好兄弟好兄弟
<随缘学习>
以上是关于欢乐的跳——快看,远处的学妹正向你慢慢走来的主要内容,如果未能解决你的问题,请参考以下文章