如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。
例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。
给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。
子数组 是数组中的一个连续序列。
我在下面写的时候要求用空格分割输入一行数字就ok 没有再做字符切割!
import java.util.*;
public class 子数列 {
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
String s = x.nextLine();
String[] ts = s.split(" ");
int[] ad = new int[ts.length];
for(int i=0;i<ad.length;i++){
ad[i] = Integer.parseInt(ts[i]);
}
int cnt = 0;
for(int i=0;i<ad.length;i++){
for(int j=i+1;j<ad.length;j++){
for(int z=j+1;z<ad.length;z++){
if((ad[z]-ad[j])==(ad[j]-ad[i])){
cnt++;
for(int k=z+1;k<ad.length;k++){
int k1 = ad[z]-ad[j];
if(ad[k]-ad[k-1]==k1){
cnt++;
}
if(ad[k]-ad[k-1]!=k1){
break;
}
}
}
}
}
}
System.out.println(cnt);
}
}