【发布时间】:2022-12-21 17:33:53
【问题描述】:
要解决的问题是在一个整数列表中找到一个不重复的整数。我使用 while 循环将每个值与另一个值进行比较。但是,该函数返回错误的值。这是一个 Hackerrank 挑战,可以在 here 找到。
public static int lonelyinteger(List<Integer> a) {
int lonelyInt = 0;
for (int i = 0; i < a.size(); i++) {
for (int j=1;j<a.size();j++){
while (a.get(i)!=a.get(j)){
lonelyInt+=a.get(i);
}
}
}
return lonelyInt;
}
我真的很感激任何提示和/或更直接的解决方案。我是 Java 的新手,正在练习我的技能。
【问题讨论】:
-
如果要求是查找列表的特定元素,为什么还要向
lonelyInt添加值? -
为什么在这里使用 while 循环? lonelyInt 变量的用途是什么?
-
我需要返回一个整数值,这就是为什么需要变量 lonelyInt 的原因。我使用 while 循环来确保 a.get(i) 不等于 a.get(j) 以获得不匹配的值其他。
-
我会用一套。遍历数组,并为每个元素尝试将其添加到集合中。如果它没有被添加(因为它已经存在),请将其删除。当你到达数组的末尾时,集合中应该还剩下一个元素,这就是你要查找的整数。
-
异或所有数字。它们要么出现一次,要么出现两次。出现两次的那些在异或运算中相互抵消,只剩下一个孤独的数字
标签: java computer-science