You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用Java实现判断数组是否为非递减排序的方法

Java判断整数数组是否为非递减排序的实现

直接上可运行的代码,解决你的需求:

public class NonDecreasingChecker {
    public static int isNonDecreasing(int[] A) {
        // 空数组或只有一个元素,必然是非递减的
        if (A == null || A.length <= 1) {
            return 1;
        }
        
        // 从第二个元素开始,逐个与前一个元素对比
        for (int i = 1; i < A.length; i++) {
            // 只要当前元素小于前一个,就不符合非递减要求,直接返回0
            if (A[i] < A[i - 1]) {
                return 0;
            }
        }
        
        // 遍历结束未发现递减情况,返回1
        return 1;
    }

    // 测试示例
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 2};
        System.out.println(isNonDecreasing(arr1)); // 输出1
        
        int[] arr2 = {1, 2, 1};
        System.out.println(isNonDecreasing(arr2)); // 输出0
    }
}

关键说明

  • 边界处理:别忽略空数组或单元素数组的情况,这类数组不存在递减的可能,直接返回1即可。
  • 循环逻辑:从索引1开始遍历,对比当前元素与前一个元素(A[i] vs A[i-1]),能避免数组越界——如果从0开始对比A[i]和A[i+1],最后一个元素会触发越界异常,这可能是你之前遇到的问题之一。
  • 提前终止:一旦发现递减情况,立刻返回0,无需继续遍历剩余元素,提升效率。

你可能踩过的坑

  • 循环起始索引选成0,导致数组越界;
  • 判断条件写反,比如用A[i] > A[i-1]来返回错误结果;
  • 未处理空数组/单元素数组的特殊情况,导致异常。

内容的提问来源于stack exchange,提问作者stark thor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:52:06