哈希、数组、规则[5990] 找出数组中的所有孤独数字
作者:互联网
// 5990. 找出数组中的所有孤独数字
class Solution {
public List<Integer> findLonely(int[] nums) {
// 存放当前所有的数字
Set<Integer> aux = new HashSet<>();
// 存放当前出现多次的数字
Set<Integer> aux1 = new HashSet<>();
// 遍历数组,填充辅助sejt
for(int i = 0; i < nums.length; i++){
if(!aux.add(nums[i])){
// 如果aux中存在nus[i]则返回false
aux1.add(nums[i]);
}
}
// 设置返回结果,则里可以适当的设置一下数组的初始化长度 即 (无重复的元素个数 - 出现多次的元素个数)
List<Integer> ans = new ArrayList<>(aux.size() - aux1.size());
for(int i = 0; i < nums.length; i++){
// 是否为出现多次的元素
// 是否存在左右相邻的元素(注意这里减的顺序 nums[i] - 1)
if(aux1.contains(nums[i]) || aux.contains(nums[i] - 1) || aux.contains(nums[i] + 1))
continue;
// 将符合的元素加入结果
ans.add(nums[i]);
}
return ans;
}
}
标签:数组,nums,int,5990,哈希,ans,aux,aux1 来源: https://blog.csdn.net/qq_36790074/article/details/122649640