在不使用循环的情况下搜索 int 数组中的数字组

Search group of numbers in int array without using a loop

我有以下数组

int[] a = { 4, 5, 6, 5, 4, 3 };

我想在数组中搜索平面序列, return 数组中最长的平面序列。

对于这个数组,答案是 3 (5,6,5)

有没有不用循环的方法?

从技术上讲,您可以使用递归,但这并没有真正摆脱循环。你只是不写关键字 whilefor

public static void main(String[] args) {
        int[] a = { 4, 5, 6, 5, 4, 3 };
        System.out.println(sequenceRecursive(a, 0, 0, 0));
    }

    public static int sequenceRecursive(int[] arr, int startIndex, int longest, int sequence) {
        if(startIndex <= 0) startIndex = 1;
        if(startIndex >= arr.length) return longest + 1;
        if(arr[startIndex] > arr[startIndex - 1]){
            sequence++;
            if(sequence > longest) longest = sequence;
        }else{
            sequence = 0;
        }
        return sequenceRecursive(arr, ++startIndex, longest, sequence);
    }