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

修复LeetCode游戏弱角色统计代码中j重置失效的问题

《游戏中的弱角色数量》代码Bug修复

问题描述

给定二维整数数组properties,其中properties[i] = [attack_i, defense_i]代表第i个角色的攻击和防御属性。若存在另一个角色j的攻击和防御均严格大于角色i,则i为弱角色,返回弱角色总数。示例:输入[[5,5],[6,3],[3,6]],输出0。

原实现代码

public static int numberOfWeakCharacters(int[][] properties) {
    if (properties.length == 0) {
        return 0;
    }
    int counter = 0;

    for (int i =0; i<properties.length; i++) {
        for (int j = 0; j<properties.length; j++) {
            int localCounter = 0;
            int firstValue = properties[j][0];
            int value = properties[j][1];
            if ((properties[i][0] < firstValue && properties[i][1] < value) ) {
                counter++;
                if (i+1 == properties.length) {
                    break;
                }
                i++;
                j=0;
            }
        }
    }
    return counter;
}

Bug现象

当if条件触发时,j = 0;语句未生效,j并未从起始位置重新遍历,而i已自增进入下一个角色的判断。

Bug原因

手动修改外层循环变量i和内层循环变量j的迭代逻辑,破坏了for循环的原有执行流程:

  1. 内层for循环每次迭代结束后会自动执行j++,所以即使在循环体里设置j=0,下一次迭代时j会变成1,无法从0开始重新遍历;
  2. 手动执行i++会导致外层循环的i被额外递增,可能跳过部分角色的判断。

修复后的代码

public static int numberOfWeakCharacters(int[][] properties) {
    if (properties.length == 0) {
        return 0;
    }
    int counter = 0;

    for (int i = 0; i < properties.length; i++) {
        boolean isWeak = false;
        for (int j = 0; j < properties.length; j++) {
            int attackJ = properties[j][0];
            int defenseJ = properties[j][1];
            // 找到任意一个j满足条件,即可判定i为弱角色
            if (properties[i][0] < attackJ && properties[i][1] < defenseJ) {
                isWeak = true;
                break; // 跳出内层循环,无需继续检查其他j
            }
        }
        if (isWeak) {
            counter++;
        }
    }
    return counter;
}

修复说明

  • 新增isWeak标记位,用于记录当前角色i是否为弱角色
  • 当找到任意一个满足条件的j时,立即标记isWeak为true并跳出内层循环,避免不必要的遍历
  • 外层循环自然处理每个i,不再手动修改循环变量i和j,保证循环流程的正确性
  • 移除了无用的localCounter变量,简化代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:48:59