题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型一维数组
*/
public int[] FindNumsAppearOnce(int[] nums) {
// 利用set集合,add失败表示集合中已经有该元素了,直接删除该元素即可
// 最后集合中剩下的就是只出现了一次的元素
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (!set.add(num)) {
set.remove(num);
}
}
// 获取只出现了一次的值
int a = -1;
int b = -1;
for (Integer i : set) {
if (a == -1) {
a = i;
} else {
b = i;
}
}
// 按非降序返回
return a < b ? new int[] {a, b} : new int[] {b, a};
}
}
查看10道真题和解析
拼多多集团-PDD公司福利 817人发布