5990. 找出数组中的所有孤独数字

Alex_Shen
2022-03-29 / 0 评论 / 0 点赞 / 118 阅读 / 643 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-03-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

给你一个整数数组 nums 。如果数字 x 在数组中仅出现 一次 ,且没有 相邻 数字(即,x + 1 和 x - 1)出现在数组中,则认为数字 x 是 孤独数字 。

返回 nums 中的 所有 孤独数字。你可以按 任何顺序 返回答案。

示例 1:

输入:nums = [10,6,5,8]
输出:[10,8]
解释:

  • 10 是一个孤独数字,因为它只出现一次,并且 9 和 11 没有在 nums 中出现。
  • 8 是一个孤独数字,因为它只出现一次,并且 7 和 9 没有在 nums 中出现。
  • 5 不是一个孤独数字,因为 6 出现在 nums 中,反之亦然。
    因此,nums 中的孤独数字是 [10, 8] 。
    注意,也可以返回 [8, 10] 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-all-lonely-numbers-in-the-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

哈希表统计

代码:

class Solution {
public:
    vector<int> findLonely(vector<int>& nums) {
        unordered_map<int,int> mp;
        vector<int> res;
        for(auto x:nums)
            mp[x]++;
        for(auto x:nums){
            if(mp[x]==1&&mp[x-1]==0&&mp[x+1]==0)
                res.push_back(x);
        }
        return res;
    }
};
0

评论区