[Day26]Jolly Jumpers

上一篇介绍了Primary Arithmetic,这题会给我们两个数字,并要我们计算两个数字加起来,然後再算总共进位几次,知道意思之後会很好解,但这题就是难在题目可能会看不懂,所以要比较花时间。

今天讲解的题目是Jolly Jumpers
先附上程序码:

import java.util.;
import static java.lang.System.
;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int C=sc.nextInt();
int arr[]=new int[C];
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt();
}
int a=1;
int arrA[]=new int[C-1];
for(int i=0;i<arr.length-1;i++){
arrA[i]=Math.abs(arr[i]-arr[i+1]);
}
Arrays.sort(arrA);
for(int i=0;i<arrA.length;i++){
if(arrA[i]!=i+1){
a=2;
break;
}
}
if(a==1) System.out.println("Jolly");
else System.out.println("Not jolly");
}
}
};

这题要我们判断是不是Jolly jumper,也就是说输入一个N,再输入N个数字并且左边减右边数的绝对值(Math.abs)会在1~N-1之间,并且不会重复,
EX:4 1 4 2 3,4是N,所以范围会在1~3之间,
|1-4|=3
|4-2|=2
|2-3|=1
,刚好1、2、3,因为出现的答案一定会有N-1个,并且都不会重复,所以最後判断的时候可以从1开始,到N-1,所以只要先排列好顺序(Arrays.sort,排列阵列里的数字由小到大),这样最後的判断只需要判断1~N-1的每个数字有没有都出现就可以完成这题的判断了。
今天的讲解就到这里。
明天也是新的题目,会介绍Vito'sfamily,继续加油!


<<:  【Day11】Function & Task

>>:  Day 12 : PHP - 你484少给钱?如何查询货运订单是否存在

Day28 - [Shioaji] 超入门!永丰证券程序交易API快速上手 (1)

一晃眼,铁人赛就进入了尾声,先前一直说有时间要来写Shioaji的,总是不能食言。我想就用最後两篇的...

[ 卡卡 DAY 29 ] - React Native iOS 打包步骤及离线 jsbundle产生

因为实在有太多东西想分享了,但已经 29 天了 我们先来个 iOS 打包步骤 完成开发後再来就是要...

#5 -Modules and require()

我们在写 node.js 的时候,不会把所有东西都丢进一个 js 档里,这会让档案变得太过庞大和难以...

Day 7:CSS的display

今天这一篇,我主要会教的是display~ display 先来谈谈比较简单的display,dis...

Day 5 Compose UI Row Layout + Position

今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...