java—在堆栈中比较数组中自己的元素

wlwcrazw  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(248)

最近我发现了这样一个问题,我想比较数组中的元素。对于每个元素,从左到右开始,找到值大于现有整数(x)的下一个整数(y),然后找到值小于其y(从左到右)整数的下一个第一个整数(z)。答案是这样的。

public static int[] comparator(int[] arr) {
    int[] answers = Arrays.stream(arr).map(i -> -1).toArray();
    for(int i = 0; i <arr.length; i++)
        for (int j = i + 1; j < arr.length - 1; j++)
            if (arr[i] < arr[j] && isElementFound(arr, answers, i, j))
                break;
    return answers;
}

private static boolean isElementFound(int[] arr, int[] answers, int i, int j) {
    for (int w = j + 1; w < arr.length; w++)
        if (arr[j] > arr[j + 1]) {
            answers[i] = (arr[j] != -1 && arr[j + 1] != -1) ? arr[j] - arr[j + 1] : -1;
            return true;
        }
    return false;
}

我想学习如何使用stack来解决这个问题。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题