在给定总和的子数组中,我一直在研究如何 return Java 中的 ArrayList

In Subarray with given sum I'm stuck on how to return an ArrayList in Java

static ArrayList<Integer> subarraySum(int[] arr, int n, int s) {
        
        // Your code here
        int sum, i, j; 
        // Pick a starting point 
        for (i = 0; i < n; i++) { 
            sum = arr[i]; 
            // try all subarrays starting with 'i' 
            for (j = i + 1; j <= n; j++) { 
                if (sum == s) { 
                    int p = j - 1; 
                    return new ArrayList[] { j, p };
                } 
                if (sum > s || j == n) 
                    break; 
                sum = sum + arr[j]; 
            } 
        }
        return -1;
    }

问题是给定一个仅包含非负整数的大小为 N 的未排序数组 A,找到一个连续的子数组来添加给定的数字 S。但是我无法 return 位置作为 ArrayList。

此代码显示错误:

Compilation Error:


prog.java:45: error: incompatible types: int cannot be converted to ArrayList
                    return new ArrayList[] { j, p };
                                             ^
prog.java:45: error: incompatible types: int cannot be converted to ArrayList
                    return new ArrayList[] { j, p };
                                                ^
prog.java:45: error: incompatible types: ArrayList[] cannot be converted to ArrayList<Integer>
                    return new ArrayList[] { .................
class Subarray{
    static ArrayList<Integer> subarraySum(int[] arr, int n, int s) {
        // Your code here
        ArrayList<Integer> a = new ArrayList<Integer>();
        int sum, i, j; 
        // Pick a starting point 
        for (i = 0; i < n; i++) { 
            sum = arr[i]; 
            // try all subarrays starting with 'i' 
            for (j = i + 1; j <= n; j++) { 
                if (sum == s) {
                    a.add(i+1);
                    a.add(j);
                    return a;
                } 
                if (sum > s || j == n) 
                    break; 
                sum = sum + arr[j]; 
            } 
        }
        a.add(-1);
        return a;
    }
}

return 值应该是一个 ArrayList。