其他分享
首页 > 其他分享> > 哈希、数组、规则[5990] 找出数组中的所有孤独数字

哈希、数组、规则[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