我正在努力解决下面链接中的代码挑战,但在第 13 到 19 种情况下失败了。我读到 HashMap 可以获取大量数据,但我的解决方案似乎不适用于数组(杂志)为30K。
以下是我实施的解决方案。
我用 4K 数组测试了代码,效果很好
static void checkMagazine(String[] magazine, String[] note) {
int initSize_m = (int) Math.ceil(magazine.length / 0.75);
int initSize_n = (int) Math.ceil(note.length / 0.75);
HashMap<Integer, String> m_hash= new HashMap<Integer, String>(initSize_m);
HashMap<Integer, String> n_hash= new HashMap<Integer, String>(initSize_n);
for(int i= 0; i < note.length; i++){
n_hash.put(i, note[i]);
}
for(int i= 0; i < magazine.length; i++){
m_hash.put(i, magazine[i]);
}
boolean flag=true;
if(note.length<magazine.length){
for (Map.Entry<Integer, String> entry : n_hash.entrySet()) {
flag = m_hash.containsValue(entry.getValue());
if(flag){
m_hash.values().removeIf(v -> v.equals(entry.getValue()));
}else{
break;
}
}
}else{
for (Map.Entry<Integer, String> entry : m_hash.entrySet()) {
flag = n_hash.containsValue(entry.getValue());
if(flag){
n_hash.values().removeIf(v -> v.equals(entry.getValue()));
}else{
break;
}
}
}
if(flag){
System.out.println("Yes");
}else{
System.out.print("No");
}
}
案例13至19失败
至尊宝的传说
相关分类