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

Java数组仅返回最小值和最大值的代码错误排查及修正请求

问题分析与代码修正

代码存在的问题

  • 初始值设置错误:min和max被固定初始化为0,这会导致两种错误场景:当数组所有元素都大于0时,最小值会错误保留为0;当数组所有元素都小于0时,最大值会错误保留为0,完全偏离数组的真实极值。
  • 未处理空数组边界:如果传入的results数组为空或为null,循环不会执行,直接返回[0, 0],不符合合理的业务逻辑。

修正后的代码

public class Stat {
    public static int[] getStat(int[] results) {
        // 处理空数组或null数组的边界情况
        if (results == null || results.length == 0) {
            throw new IllegalArgumentException("数组不能为空或长度为0");
        }
        
        // 用数组第一个元素初始化min和max,确保初始值来自数组本身
        int min = results[0];
        int max = results[0];
        
        // 从第二个元素开始遍历,减少一次不必要的比较
        for(int i = 1; i < results.length; i++){
            if(results[i] < min){
                min = results[i];
            }
            if(results[i] > max) {
                max = results[i];
            }
        }
        return new int[] { min, max };
    }
}

修正说明

  • 正确初始化极值:使用数组第一个元素作为min和max的初始值,保证初始值是数组内的真实元素,避免固定初始值带来的错误。
  • 添加边界校验:对空数组或null数组抛出明确异常,避免返回无意义的默认值。
  • 优化遍历起点:从索引1开始遍历,因为索引0的元素已经作为初始值,无需重复比较,小幅提升执行效率。

内容的提问来源于stack exchange,提问作者Andrew Trendy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:06:29