我试图在黑客级别解决这个问题,我注意到了一些事情。
这个问题的函数失败了一些测试用例,我向你保证,这不是由于运行时错误。
public static int functionA(List<Integer> a) {
int min = -1, size = a.size();
for (int i = 0; i < size; i++){
for (int j = i + 1; j < size; j++){
if (j - i >= min && min != -1) break;
if (a.get(i) == a.get(j)) min = j - i;
}
}
return min;
}
这个方法有点不同,但逻辑上与前面的方法相同。使用此方法,它通过了所有测试用例。
public static int functionB(List<Integer> a) {
int min = -1, size = a.size();
for (int i = 0; i < size; i++){
int temp = a.get(i);
for (int j = i + 1; j < size; j++){
if (j - i >= min && min != -1) break;
if (temp == a.get(j)) min = j - i;
}
}
return min;
}
我在我的计算机上运行了代码,发现第一个函数对此测试用例给出了错误的答案(输出-1)。
我没有收到任何编译器警告,或者有什么东西可以打开“所有”编译器警告?
这里的显著区别是,在第一种情况下,您使用==
来比较对象(而不是您应该使用的equals()
)。它仅适用于-128
到127
范围内的整数
对象,这些对象被缓存,并且=
的工作方式与原语相同。
在第二种情况下,您将在temp
中将整数
解装箱到int
,因此使用与=
的原始比较(get()
的结果也将被解装箱),并且它可以工作对所有值正确。
IDE可能有不同的检查,这些检查将警告比较整数
值与=
(以及其他潜在错误的负载)。
文档: 操作: 合作伙伴: HQL(“INCASAT”=“兑现”,“VANDUT”=“出售”):
保留两位小数,小数部分相同,结果不一致 输出如上所述,应与小数部分相同。
下面的代码通过使用特征向量作为容器或简单的C数组来实现相同的计算。它产生一个封闭的但不是位到位等效的结果。 最后的数学运算是。
https://leetcode.com/problems/find-all-numbers-dispapered-in-an-array/discuss/93007/simple-java-in-place-sort-solution 你能查一下上面的链接吗? 我看不懂密码 然后,第一个只是简单地使用我们可以检查是不是值。 第二个, 它最终也是一样的东西,只是为了证明索引值=index+1。 但
我在这里试图添加一个节点到一个单一的链接列表 这个有效,但如果我这么做- 有些人认为列表现在只包含一个节点
问题内容: 当我运行此代码时: 我在Eclipse的JUnit运行程序中得到以下结果: 这导致从命令行Maven: 如您所见,时间有所不同。 (同一台计算机,相同的Java版本,可能相隔30秒)。为什么? [编辑] 时区也不同。从Maven 启动和从Eclipse 启动时,为什么要使用Java ? 或换一种说法:如何强制Java使用两者? 问题答案: 要指定默认时区,您可以设置系统属性。您可以通过