leetcode-442.数组中重复的数据

embedded/2025/3/1 15:33:05/

leetcode442_0">leetcode-442.数组中重复的数据

文章目录

  • leetcode-442.数组中重复的数据
    • 1.题目描述:数组中重复的数据
    • 2.第一次代码提交:(不符合仅使用常量额外空间)
    • 3.最终代码提交:只使用常数额外空间、时间复杂度为 O(n) 的做法,即“标记法”

1.题目描述:数组中重复的数据

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 <= 10^5
  • 1 <= nums[i] <= n
  • nums 中的每个元素出现一次或两次

2.第一次代码提交:(不符合仅使用常量额外空间)

class Solution {
public:vector<int> findDuplicates(vector<int>& nums) {std::vector<int> result;int n = nums.size();std::vector<int> count(n + 1, 0); // 初始化大小为 n+1 的计数数组,初值为 0// 统计每个数字出现的次数for (int i = 0; i < n; i++) {count[nums[i]]++;}// 找出出现两次的数字for (int i = 1; i <= n; i++) { // 注意遍历范围是 [1, n]if (count[i] == 2) {result.push_back(i);}}return result;}
};

3.最终代码提交:只使用常数额外空间、时间复杂度为 O(n) 的做法,即“标记法”

class Solution {
public:vector<int> findDuplicates(vector<int>& nums) {vector<int> result;int n = nums.size();// 遍历数组,标记每个数字对应的下标for (int i = 0; i < n; i++) {int index = abs(nums[i]) - 1;  // 下标范围为 [0, n-1]// 如果对应位置已经是负数,则说明该数字重复出现if (nums[index] < 0) {result.push_back(index + 1);} else {// 否则,将该下标对应的数字取反nums[index] = -nums[index];}}return result;}
};

http://www.ppmy.cn/embedded/169084.html

相关文章

【MySQL】索引(中)

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;【MySQL】索引(中) 发布时间&#xff1a;2025.2.28 隶属专栏&#xff1a;MySQL 目录 一个现象现象展现现象解释为何IO交互要是 Page 构建B索引理解单个page理解多个Page页目录单页目录多页情况 复盘一下 为什么是B树…

【Android】Android Studio 中文乱码问题解决方案

问题现象 在 Java 文件编译或运行时&#xff0c;IDE 控制台或代码编辑区出现类似以下乱码提示&#xff1a; E:\...\FileHelper.java:92: &#xfffd;&#xfffd;&#xfffd;&#xfffd;: &#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&…

SpringBoot缓存实践

文章目录 一、引言二、Spring Cache 抽象&#xff08;一&#xff09;核心概念与原理&#xff08;二&#xff09;优势与局限性 三、集成常用缓存&#xff08;一&#xff09;集成 Redis 缓存1. 集成步骤2. 踩坑记录与心得体会 &#xff08;二&#xff09;集成 Ehcache 缓存1. 集成…

fastapi + 异步 sqlalchemy 连接 mysql 断开 2003 问题

资料 1.Fastapi 项目第二天首次访问时数据库连接报错问题Cant connect to MySQL server - 上海-悠悠 - 博客园2.Peewee_同步/异步/断线重连/连接池 - Alex-GCX - 博客园 3.【Python】SQLAlchemy长时间未请求&#xff0c;数据库连接断开的原因、解决方案_sqlalchemy session长…

前端八股——JS+ES6

前端八股&#xff1a;JSES6 说明&#xff1a;个人总结&#xff0c;用于个人复习回顾&#xff0c;将持续改正创作&#xff0c;已在语雀公开&#xff0c;欢迎评论改正。

matlab图论分析之网络构建

在网络构建中&#xff0c;二值化和加权网络的处理是两个关键步骤&#xff1a; 二值化&#xff1a;是将加权网络转换为二值网络&#xff0c;也就是只有0或1&#xff0c;同时保留网络的关键拓扑特性。通常设定一个阈值也即是网络密度&#xff0c;保留权重高于阈值的边&#xff0…

【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II

[【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II] 题目 查看提交统计提问 总时间限制: 2000ms 内存限制: 65536kB 描述 The gopher family, having averted the canine threat, must face a new predator. The are n gophers and m gopher holes, each at di…

2步本地安装部署国产之光大模型DeepSeek,附Mac安装教程和安装包!

轻松两步本地运行国产大模型DeepSeek&#xff0c;附Windows与Mac教程及安装包&#xff01; 在短短一夜之间&#xff0c;DeepSeek-R1&#xff0c;中国的AI大模型&#xff0c;以惊人的速度崛起&#xff0c;引发了全球科技界的广泛关注。英伟达AI科学家Jim Fan也对此表示惊讶&…