力扣刷题--442. 数组中重复的数据【中等】

题目描述

给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。

你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间(不包括存储输出所需的空间)的算法解决此问题。

示例 1:

输入:nums = [4,3,2,7,8,2,3,1]

输出:[2,3]

示例 2:

输入:nums = [1,1,2]

输出:[1]

示例 3:

输入:nums = [1]

输出:[]

提示:

n == nums.length

1 <= n <= 105

1 <= nums[i] <= n

nums 中的每个元素出现 一次 或 两次

算法分析

利用哈希表,统计每种数字出现的次数,再遍历哈希表,统计出现两次的数字

完整代码

cpp 复制代码
class Solution { 
public:   
    vector<int> findDuplicates(vector<int>& nums) {   
        vector<int>ans;   
        unordered_map<int,int>m;   
        for(auto i:nums)   
            m[i]++;   
        for(auto kv:m)   
        {
            if(kv.second==2)   
                ans.push_back(kv.first);   
        }
        return ans;   
    }
};

本篇完!🍗

相关推荐
LYFlied几秒前
【算法解题模板】-解二叉树相关算法题的技巧
前端·数据结构·算法·leetcode
Ven%24 分钟前
【AI大模型算法工程师面试题解析与技术思考】
人工智能·python·算法
天勤量化大唯粉26 分钟前
枢轴点反转策略在铜期货中的量化应用指南(附天勤量化代码)
ide·python·算法·机器学习·github·开源软件·程序员创富
爱学习的小仙女!40 分钟前
算法效率的度量 时间复杂度 空间复杂度
数据结构·算法
AndrewHZ43 分钟前
【复杂网络分析】什么是图神经网络?
人工智能·深度学习·神经网络·算法·图神经网络·复杂网络
Swizard1 小时前
拒绝“狗熊掰棒子”!用 EWC (Elastic Weight Consolidation) 彻底终结 AI 的灾难性遗忘
python·算法·ai·训练
牛客企业服务1 小时前
AI面试选型策略:9大维度避坑指南
人工智能·面试·职场和发展
fab 在逃TDPIE2 小时前
Sentaurus TCAD 仿真教程(十)
算法
天赐学c语言2 小时前
12.19 - 买卖股票的最佳时机 && const的作用
c++·算法·leecode
菜鸟233号2 小时前
力扣78 子集 java实现
java·数据结构·算法·leetcode