god_1021 2024-01-08 19:54 采纳率: 0%
浏览 4

LeetCode(力扣) 10033 哈希图的问题

LeetCode 第10033题
静态哈希图和非静态哈希图的结果不一样是为什么?

class Solution {
    //非静态哈希图
    HashMap<Integer,Integer> map = new HashMap<>();

    public int minimumOperationsToMakeEqual(int x, int y) {
        if (x <= y) return y - x;
        if (map.containsKey(x)) return map.get(x);
        int ans = x - y;
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 11, y) + x % 11 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 11 + 1, y) + 11 - x % 11 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 5, y) + x % 5 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 5 + 1, y) + 5 - x % 5 + 1);
        map.put(x, ans);
        return ans;
    }
}

结果图(正确)

img

但是当我换成了时
static HashMap<Integer,Integer> map = new HashMap<>();

class Solution {
    //静态哈希图
    static HashMap<Integer,Integer> map = new HashMap<>();

    public int minimumOperationsToMakeEqual(int x, int y) {
        if (x <= y) return y - x;
        if (map.containsKey(x)) return map.get(x);
        int ans = x - y;
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 11, y) + x % 11 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 11 + 1, y) + 11 - x % 11 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 5, y) + x % 5 + 1);
        ans = Math.min(ans, minimumOperationsToMakeEqual(x / 5 + 1, y) + 5 - x % 5 + 1);
        map.put(x, ans);
        return ans;
    }
}

结果图(错误)

img

于是我单独测试这个样例,但结果却是对的
单个测试结果图(正确)

img

这是为什么?求解。

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 1月8日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改