GuilinDev

Lc1630

05 August 2008

1630 Arithmetic Subarrays

再构数组进行排序判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
    public List<Boolean> checkArithmeticSubarrays(int[] nums, int[] l, int[] r) {
        List<Boolean> list=new ArrayList<>();
        boolean f=true;
        for(int i=0;i<l.length;i++){
            f=true;
            int left=l[i];
            int right=r[i];
            int[] temp=Arrays.copyOfRange(nums,left,right+1);
            Arrays.sort(temp);
            int a=(temp[right-left]-temp[0])/(right-left);
            for(int j=right-left;j>=0;j--){
                if(j-1>=0 && temp[j]-temp[j-1] != a){
                    list.add(false);
                    f=false;
                    break;
                }
            }
            if(f){
                list.add(true);
            }
        }
        return list;
    }
}