java数组逻辑错误
我编写了以下代码来解决一个问题,但它不起作用。这个问题的链接是here
public boolean linearIn(int[] outer, int[] inner) {
boolean result = false;
if(inner.length == 0)
return true;
index: for(int x: inner) {
for(int y: outer) {
if(x==y) {
result = true;
break;
}
else {
result = false;
break index;
}
}
}
return result;
}
# 1 楼答案
问题在另一部分。因为如果仅一次比较失败,您无法断定中的元素不在内部数组中:
要解决此问题,您可以执行以下操作:
# 2 楼答案
如果复杂性应为O(n),则假设代码:
# 3 楼答案
其思想是在外部循环,内部在外部循环 如果在路上看到它违反了规则,立即返回false 如果在最后,覆盖所有数组的内循环的索引返回true,否则返回false
# 4 楼答案
你必须做一个O(n)解,你的是O(n2)。你只需要三行字(好吧,有点作弊):