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;
}
}
结果图(正确)
但是当我换成了时
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;
}
}
结果图(错误)
于是我单独测试这个样例,但结果却是对的
单个测试结果图(正确)
这是为什么?求解。