当前位置: 首页 > article >正文

力扣刷题--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 中的每个元素出现 一次 或 两次

算法分析

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

完整代码

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;   
    }
};

在这里插入图片描述


本篇完!🍗


http://www.kler.cn/news/294707.html

相关文章:

  • 指针与函数(三)
  • 1-9 图像膨胀 opencv树莓派4B 入门系列笔记
  • 关键字volatile有什么含意?
  • Java线程池和Executor框架-面试与分析
  • Wimdows使用Appium IOS自动化
  • 行为型设计模式-责任链(chain of responsibility)模式-python实现
  • 第十六篇:走入计算机网络的传输层--传输层概述
  • 【Qt线程】—— Qt线程详解
  • 2024年水利水电安全员考试题库及答案
  • Linux C 内核编程 /proc 编程例子
  • 【代码随想录训练营第42期 续Day52打卡 - 图论Part3 - 卡码网 103. 水流问题 104. 建造最大岛屿
  • 手游后端架构中,用命令模式解决什么问题
  • How can I load the openai api configuration through js in html?
  • 云计算实训41——部署project_exam_system项目(续)
  • 关于Qt在子线程中使用通讯时发生无法接收数据的情况
  • Docker配置Redis持久化
  • 如何保护服务器免受恶意软件攻击?
  • C++学习笔记(11)
  • 【网络安全】如何预防xss
  • 基于EPS32C3电脑远程开机模块设计
  • 飞思相机存储卡格式化数据如何恢复?提供全面指南
  • 风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架
  • 【Nacos】负载均衡
  • 应用层简单实现udp / tcp网络通信
  • 「大数据分析」图形可视化,如何选择大数据可视化图形?
  • Qt: 详细理解delete与deleteLater (避免访问悬空指针导致程序异常终止)
  • JAVA并发编程JUC包之CAS原理
  • 概率学 笔记一 - 概率 - 随机变量 - 期望 - 方差 - 标准差(也不知道会不会有二)
  • 【AcWing】853. 有边数限制的最短路(bellman-ford贝尔曼福特算法)
  • 【HTML】script标签asyncdefer