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

Java数组删除最小与最大值:代码仅对最大值生效问题求助

解决数组删除最小/最大值的问题

你的代码删除最小值失效主要有几个问题:

  • 初始化min为0,但数组里都是正数,nums[i] < min的条件永远不满足,导致min一直是0,数组里没有0,自然删不了
  • 删除最大值后,数组的有效元素已经少了一个,但你后续找最小值还是遍历原数组长度,会读到最后一个重复的无效元素
  • 删除元素时没终止循环,碰到多个相同最值会重复移动,导致数组混乱

给你修正后的代码:

public class delminmax {

    public static void main(String[] args) {
        int[] nums = {10, 50, 20, 90, 22};
        int validLength = nums.length; // 用变量记录数组有效元素长度

        // 找最大值
        int max = nums[0];
        for (int i = 1; i < validLength; i++) {
            if (nums[i] > max)
                max = nums[i];
        }
        System.out.println("The max number is " + max);

        // 删除最大值
        for (int i = 0; i < validLength; i++) {
            if (max == nums[i]) {
                for (int j = i; j < validLength - 1; j++)
                    nums[j] = nums[j + 1];
                validLength--; // 有效长度减1
                break; // 找到后退出循环,避免重复处理
            }
        }
        // 打印删除最大值后的数组
        System.out.print("删除最大值后:");
        for (int i = 0; i < validLength; i++)
            System.out.print(nums[i] + " ");
        System.out.println();

        // 找最小值
        int min = nums[0];
        for (int i = 1; i < validLength; i++) {
            if (nums[i] < min)
                min = nums[i];
        }
        System.out.println("The min number is " + min);

        // 删除最小值
        for (int i = 0; i < validLength; i++) {
            if (min == nums[i]) {
                for (int j = i; j < validLength - 1; j++)
                    nums[j] = nums[j + 1];
                validLength--;
                break;
            }
        }
        // 打印最终数组
        System.out.print("删除最小值后:");
        for (int i = 0; i < validLength; i++)
            System.out.print(nums[i] + " ");
    }
}

修改说明:

  • 把max和min的初始值设为数组第一个元素,而非0,确保能正确遍历找到最值
  • 新增validLength变量跟踪有效元素长度,每次删除后减1,后续遍历都基于这个长度,避免读到无效的重复元素
  • 删除元素后加break,找到第一个最值就停止,防止多次移动元素导致数组错乱
  • 调整输出逻辑,只打印有效长度内的元素,结果更清晰直观

内容的提问来源于stack exchange,提问作者yury ting

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:05:21