LeetCode 448.找到所有数组中消失的数字

目录

1.题目

2.代码及思路

3.进阶

3.1题目

3.2代码及思路


1.题目

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

示例 1:

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

示例 2:

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

提示:

    n == nums.length
    1 <= n <= 105
    1 <= nums[i] <= n

进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。

来源:力扣(LeetCode)

2.代码及思路

先上代码:

class Solution {
public:vector<int> findDisappearedNumbers(vector<int>& nums) {int n = nums.size();//index = abs(nums[i])//将nums[index]值变为负数,代表num[i]出现过for (int i = 0; i < n; ++i) {nums[abs(nums[i]) - 1] = -abs(nums[abs(nums[i]) - 1]);}vector<int>ans;//遍历数组,大于0地方表示该下标值未出现过for (int i = 0; i < n; ++i) {if (nums[i] > 0) ans.push_back(i + 1);}return ans;}
};

为方便理解,效果如下图:

3.进阶

3.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 <= 105
    1 <= nums[i] <= n
    nums 中的每个元素出现 一次 或 两次

来源:力扣(LeetCode)

3.2代码及思路

class Solution {
public:vector<int> findDuplicates(vector<int>& nums) {int n_nums = nums.size();vector<int>ans;for (int i = 0;i < n_nums; ++i) {//如果该元素出现两次,那么第二次该下标的数必然为负数if (nums[abs(nums[i]) - 1] < 0) {ans.push_back(abs(nums[i]));}nums[abs(nums[i]) - 1] = -abs(nums[abs(nums[i]) - 1]);}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis中的rdb和aof

Redis中的rdb和aof 持久化流程RDB机制redis.conf中rdb的配置save bgsave 自动化 rdb触发的三种方式save 命令bgsave命令自动触发 rdb的优势劣势 AOFaof原理aof配置文件重写原理aof的三种触发机制 appendfsyncaof fix工具 redis-check-aof练习aofaof的优缺点 redis是一个内存数据…

try catch执行return的区别

在Java&#xff08;或类似的语言&#xff09;中&#xff0c;try-catch 块是用于异常处理的结构&#xff0c;而 return 语句用于从方法中返回值。当它们结合使用时&#xff0c;会有一些行为上的差异。 try-catch 块&#xff1a; try-catch 块用于捕获可能会在 try 代码块中抛出的…

一年级英语单元测试

起因 小孩读一年级的&#xff0c;期末想复习下之前的英语听力单元测试。在网上找了一圈没有找到资源。干脆自己用扫描王&#xff0c;把自己手上纸质的扫描后&#xff0c;擦除答题痕迹。 硬货 下述链接是整理后的资源&#xff0c;包括试卷和听力录音。是上海教育出版社的版本。需…

java——IO流基础

目录 IO流IO流的四大分类&#xff1a;IO流的体系&#xff1a;FileinputStream&#xff08;文件字节输入流&#xff09;FileOutputStream(文件字节输出流&#xff09;文件复制资源释放FileReader&#xff08;文件字符输入流&#xff09;FileWriter(文件字符输出流&#xff09;缓…

Python实战: 获取 后缀名(扩展名) 或 文件名

Python实战: 获取 后缀名(扩展名) 或 文件名 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您的订阅和支持~ &…

mysql 事务详解一

前言 提到事务&#xff0c;大家肯定不陌生。在我们现实生活中也是存在的&#xff0c;比如我们去超市购物&#xff0c;然后去支付。虽然是两个步骤&#xff0c;必须保证同时成功&#xff0c;这个交易才可以完成。 如果这个场景&#xff0c;拿到我们购物系统&#xff0c;就是几…

VirtualBox+Vagrant安装linux

一、VirtualBox安装 VirtualBox官网&#xff1a;Oracle VM VirtualBox 这里采用VirtualBox--7.0.0 版本 二、Vagrant安装 Vagrant官网&#xff1a;Vagrant by HashiCorp Vagrant镜像仓库&#xff1a;Discover Vagrant Boxes - Vagrant Cloud 这里采用Vagrant--2.4.1版本 在…

神经网络系列---权重初始化方法

文章目录 权重初始化方法Xavier初始化&#xff08;Xavier initialization&#xff09;Kaiming初始化&#xff0c;也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化&#xff08;X…

关于uniapp H5应用无法在触摸屏正常显示的处理办法

关于uniapp H5应用无法在触摸屏正常显示的处理办法 1、问题2、处理3、建议 1、问题 前几天&#xff0c; 客户反馈在安卓触摸大屏上无法正确打开web系统&#xff08;uni-app vue3开发的h5 应用&#xff09;&#xff0c;有些页面显示不出内容。该应用在 pc 端和手机端都可以正常…

【递归版】归并排序算法(1)

目录 MergeSort归并排序 整体思想 图解分析 代码实现 时间复杂度 递归&归并排序VS快速排序 MergeSort归并排序 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法&#xff08;Divide and Conquer&a…

元宇宙与大模型的关系

元宇宙与大模型之间存在密切的关系&#xff0c;它们可以相辅相成&#xff0c;共同构建一个更加复杂、真实和全面的虚拟世界。 元宇宙的概念&#xff1a;元宇宙是一个包容性的虚拟世界&#xff0c;涵盖了虚拟现实、增强现实和混合现实等多种技术&#xff0c;以及人工智能、区块…

Golang性能分析神器:pprof与火焰图实战揭秘

文章目录 性能分析的重要性性能分析的维度 pprof简介pprof的作用pprof的工作原理 使用pprof进行性能分析采样方式数据分析实战案例火焰图 深入理解pprof的采样机制CPU采样如何启动CPU采样 Goroutine采样如何启动Goroutine采样 内存采样如何启动内存采样 阻塞和锁竞争采样如何启…

Linux第65步_学习“Makefie”

学习“Makefie”&#xff0c;为后期学习linux驱动开发做铺垫。 1、在“/home/zgq/linux/atk-mp1”创建一个“Test_MakeFile”目录用于学习“Makefie”。 打开终端 输入“cd /home/zgq/linux/回车”&#xff0c;切换到“/home/zgq/linux/”目录 输入“mkdir Linux_Drivers回…

window: C++ 获取自己写的dll的地址

我自己用C写了一个插件,插件是dll形式的,我的插件式在dll的目录下有个config文件夹,里面是我用json写的插件配置文件,当插件运行的时候我需要读取到json配置文件,所有最重要的就是如何获取dll的路径. 大概就是这么个结构, 我自己封装了一个函数.只适用于window编程,因为里面用…

node 之 fs文件系统模块

1.什么是fs文件系统模块 fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对文件的操作需求 fs.readFile(),用来读取制定文件中的内容 fs.writeFile(),用来向制定的文件中写入内容 如果要在JavaScript代码中&#xff0c;使…

论文是怎么一回事

最近找到女朋友了&#xff0c;她还挺关心我毕业和论文的事情&#xff0c;我开始着手弄论文了~ 说来惭愧&#xff0c;我一直以为读研就是做东西当作工作来完成&#xff0c;结果一直陷入如何实现的问题&#xff0c;结果要论文时不知道怎么弄创新点&#xff0c;这才转过头来弄论文…

Python实现歌曲下载程序, 打包exe应用程序

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 模块使用: import requests >>> pip install requests import parsel >>> pip install parsel import pr…

Vue30 自定义指令 函数式 对象式

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>自定义指令</title><script type"text/javascript" src"../js/vue.js"></script></head><body><!-- 需求1&…

使用向量数据库pinecone构建应用06:日志系统异常检测 Anomaly Detection

Building Applications with Vector Databases 下面是这门课的学习笔记&#xff1a;https://www.deeplearning.ai/short-courses/building-applications-vector-databases/ Learn to create six exciting applications of vector databases and implement them using Pinecon…

spring.factories 和@ComponentScan的使用小结

spring.factories和ComponentScan是Spring框架中两个不同的概念&#xff0c;它们在功能和作用上有一些区别。 spring.factories&#xff1a;通过SPI机制扫描META-INF/spring.factories文件中配置加载组件 spring.factories是Spring Boot项目中的一个特殊文件&#xff0c;用于自…