一個 n n n 個元素的整數(shù)數(shù)組,如果數(shù)組兩個連續(xù)元素之間差的絕對值包括了 [ 1 , n ? 1 ] [1,n-1] [1,n?1] 之間的所有整數(shù),則稱之符合“歡樂的跳”,如數(shù)組 { 1 , 4 , 2 , 3 } \{1,4,2,3\} {1,4,2,3} 符合“歡樂的跳”,因為差的絕對值分別為: 3 , 2 , 1 3,2,1 3,2,1。
給定一個數(shù)組,你的任務是判斷該數(shù)組是否符合“歡樂的跳”。
二、輸入格式每組測試數(shù)據(jù)第一行以一個整數(shù) n ( 1 ≤ n ≤ 1000 ) n(1 \le n \le 1000) n(1≤n≤1000) 開始,接下來 n n n 個空格隔開的在 [ ? 1 0 8 , 1 0 8 ] [-10^8,10^8] [?108,108] 之間的整數(shù)。
三、輸出格式對于每組測試數(shù)據(jù),輸出一行若該數(shù)組符合“歡樂的跳”則輸出Jolly
,否則輸出Not jolly
。
4 1 4 2 3
(2)樣例輸出1Jolly
(3)樣例輸入25 1 4 2 -1 6
(4)樣例輸出2Not jolly
五、提示1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000
六、正確代碼import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n - 1];
int[] c = new int[n - 1];
for (int i = 0; i< n; i++) {
a[i] = sc.nextInt();
}
for (int i = 0; i< n - 1; i++) {
b[i]=Math.abs(a[i+1]-a[i]);
}
for (int j = 0; j< n - 1; j++) {
for (int i = 1; i<= n - 1; i++) {
if (b[j] == i){
c[i - 1] = 1;;
break;
}
}
}
for (int i = 0; i< n - 1; i++) {
while (c[i] == 0){
System.out.println("Not jolly");
System.exit(0);
}
}
System.out.println("Jolly");
}
}
七、注意點以及思路
(1)注意點這道題我一開始怎么都寫不對,但又覺得自己非常正確,最后發(fā)現(xiàn)自己讀錯題了啊啊啊啊。我把題意理解成了數(shù)組中兩個連續(xù)元素之差必須包含在這個數(shù)組之中,題目中的案例 {1,4,2,3}還滿足了我以為的那個條件,然后就錯的一發(fā)不可收拾了。。。。
從此明白了做題前要先認真讀題啊
(2)思路①首先認真讀題,理解題意
②進行準備工作
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n - 1];
int[] c = new int[n - 1];
for (int i = 0; i< n; i++) {
a[i] = sc.nextInt();
}
③使用數(shù)組b存儲兩個連續(xù)元素之間差的絕對值,數(shù)組大小為n-1
for (int i = 0; i< n - 1; i++) {
b[i]=Math.abs(a[i+1]-a[i]);
}
此處要用到求絕對值的方法:Math.abs()
④對數(shù)組c進行賦值
for (int j = 0; j< n - 1; j++) {
for (int i = 1; i<= n - 1; i++) {
if (b[j] == i){
c[i - 1] = 1;
break;
}
}
}
⑤對數(shù)組c進行判斷
for (int i = 0; i< n - 1; i++) {
while (c[i] == 0){
System.out.println("Not jolly");
System.exit(0);
}
}
System.out.println("Jolly");
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧