
【解题思路】
将每个数字出现的次数统计在map中,将出现一次的数字返回。
class Solution {
public int[] singleNumbers(int[] nums) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
int len = nums.length;
int myLen = 0;
for(int i = 0; i < len; i++)
{
int cnt = map.getOrDefault(nums[i], 0) + 1;
map.put(nums[i], cnt);
if(cnt == 1) myLen++;
else myLen--;
}
int[] ans = new int[myLen];
int i = 0;
for(Integer num : map.keySet())
{
if(map.get(num) == 1)
{
ans[i++] = num;
}
}
return ans;
}
}
该博客介绍了如何利用哈希映射统计数组中每个数字出现的频率,从而找出只出现一次的元素。通过遍历数组,将每个数字及其出现次数存储在哈希表中,然后筛选出计数为1的数字,最终返回这些单次出现的数字。这种方法高效且简洁。
1192

被折叠的 条评论
为什么被折叠?



