angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据

1839a124451a89b2eee20190351bfe7e.png

[LeetCode] 442. 数组中重复的数据

题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array

难度:中等

通过率:61.5%

题目描述:

给定一个整数数组 a,其中1 ≤ a[i] ≤ nn 为数组长度), 其中有些元素出现 两次 而其他元素出现 一次

找到所有出现 两次 的元素。

你可以不用到任何额外空间并在O( n )时间复杂度内解决这个问题吗?

示例:

**输入:**
[4,3,2,7,8,2,3,1]**输出:**
[2,3]

思路:

思路一:排序

通过索引号排序,比如数字4放到索引3的位置,最后找排序后数组,与索引号没有相差1便是重复元素

思路二:绝对值

借用索引号,因为是在1~n之间,那么我们可以用索引0表示数字1,索引1表示数字2...,当有个数字num,我们将num - 1的位置的数字取相反数,连续两次取相反数会变回来,便可判断元素出现次数。

所以时间复杂度为$O(n)$

相似题型:448. 找到所有数组中消失的数字

代码:

思路一:

class Solution:def findDuplicates(self, nums: List[int]) -> List[int]:res = []for i in range(len(nums)):while nums[nums[i] - 1] != nums[i]:tmp = nums[i]# 注意要保持这个位置loc = nums[i] - 1nums[i] = nums[nums[i] - 1]nums[loc] = tmpfor idx, val in enumerate(nums, 1):if val != idx:res.append(val)return res

思路二:

class Solution:def findDuplicates(self, nums: List[int]) -> List[int]:res = []for i in range(len(nums)):loc = abs(nums[i]) - 1if nums[loc] < 0:res.append(loc + 1)nums[loc] = -nums[loc]return res

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

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

相关文章

docker 安装mysql 实战文档_docker 安装mysql

PassJava (佳必过) 项目全套学习教程连载中&#xff0c;关注公众号第一时间获取。docker 安装mysql1.下载镜像sudo docker pull mysql:5.7ubuntuVM-0-13-ubuntu:~$ sudo docker pull mysql:5.75.7: Pulling from library/mysqlc499e6d256d6: Pull complete22c4cdf4ea75: Pull c…

眼球追踪

眼球追踪类似于头部追踪&#xff0c;但是图像的呈现取决于使用者眼睛所看的方向。例如&#xff0c;人们可以用“眼神”完成一种镭射枪的瞄准。眼球追踪技术很受VR专家们密切关注。Oculus创始人帕尔默拉奇就曾称其为“VR的心脏”。对于人眼位置的检测&#xff0c;能够为当前所处…

python下载文件暂停恢复_Python关于Threading暂停恢复解决办法

我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后, 线程就属于失控状态. 不过, 我们可以自己实现这些. 一般的方法就是循环地判断一个标志…

信息系统状态过程图_过程状态图中使用的重要术语| 操作系统

信息系统状态过程图1)上下文切换 (1) Context Switching) Whenever a process is transferred within the system, it moves within different states. These states are known as the process states. When a process goes from one state to another state inside the system…

mysql 吧库下的表名都加_mysql数据库表名大小写问题

mysql数据库表名大小写问题mysql数据库linux版本表名、字段名默认大小写敏感&#xff0c;即区分大小写。查看mysql有关大小写参数&#xff1a;lower_case_file_system是一个只读参数&#xff0c;无法被修改&#xff0c;这个参数是用来告诉你在当前的系统平台(linux\windows等)下…

rgb 灰色_金属+RGB+无线,我要买爆这款海盗船VIRTUOSO鉴赏家游戏耳机

海盗船最近新出的旗舰耳机&#xff0c;VIRTUOSO RGB Wireless SE&#xff0c;中文名叫鉴赏家。耳机一改往日欧美电竞风&#xff0c;改走金属质感高大上简约风&#xff0c;不过讲真&#xff0c;这颜值我吃起来很香。考虑文章过长&#xff0c;我先概括一下入手理由&#xff0c;具…

c mysql使用场景_Mysql 场景

1个SQL题&#xff0c;1个场景题&#xff0c;会有点难度&#xff01;SQL题该SQL题大量涉及到row_number&#xff0c;case when&#xff0c;group by等高级用法&#xff0c;有一定的实用价值&#xff0c;总结出来&#xff0c;供日后参考Question.1&#xff1a;分组汇总给定筛选条…

以己为壑

2019独角兽企业重金招聘Python工程师标准>>> 今天把软件工程里面关于面向对象的设计学完了,使我对面向对象OOA和OOD的思想有了进一步的认识,各科知识千沟万壑,犬牙交错,的确是这样,能蒙住自己眼的永远是你自己,而不是这个世界,因为美就在那里;裹住自己双足的的永远是…

macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试

Visual Studio Code (VSCode)是一个轻量级但功能强大的源代码编辑器&#xff0c;可在桌面上运行&#xff0c;适用于Windows&#xff0c;macOS和Linux。 它内置了对JavaScript&#xff0c;TypeScript和Node.js的支持&#xff0c;并具有丰富的其他语言(如C&#xff0c;C&#xff…

最小生成树 kruskal_使用Kruskal算法求解Java最小生成树问题

最小生成树 kruskalIn Electronic Circuit we often required less wiring to connect pins together. We can model this wiring problem with a connected, undirected graph G(V, E), where V is the set of pins, E is the set of possible interconnections between pair …

mysql数据库面试题 软件测试_软件测试数据库面试题一

前提本次分享只局限于 sql server 和 mysql 这两种数据库&#xff0c;其他数据库暂不总结正文1. 对查询的字段进行去重(distinct)用法注意&#xff1a;1. distinct【查询字段】&#xff0c;必须放在要查询字段的开头&#xff0c;即放在第一个参数&#xff1b;2. 只能在SELECT 语…

mongoDB 使用手册

2019独角兽企业重金招聘Python工程师标准>>> 1、基本操作db.AddUser(username,password) 添加用户db.auth(usrename,password) 设置数据库连接验证db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库db.commandHelp(name) returns the help for the commanddb.…

android搜索框功能实现_巧用 Trie 树,实现搜索引擎关键词提示功能

来源 | 码海责编 | Carol封图 | CSDN 付费下载于视觉中国我们几乎每天都在用搜索引擎搜索信息&#xff0c;相信大家肯定有注意过这样一个细节:当输入某个字符的时候&#xff0c;搜索引框底下会出现多个推荐词&#xff0c;如下&#xff0c;输入「python」后&#xff0c;底下会出…

qt5.9.0调试如何查看变量的值_深入了解 Java 调试

Bug(俗称"八阿哥") 是软件开发绕不过的一道坎&#xff0c;因此调试便成了每位程序员一项必备的核心技能。调试不仅有助于理解程序的运行流程&#xff0c;还能改进代码质量&#xff0c;最终提高开发者解决问题的能力以及交付软件的品质。本文旨在讨论 Java 调试关键技…

(6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug...

如果POI-3.10往一个工作表&#xff08;sheet&#xff09;里面插入数据的话&#xff0c;需要注意了&#xff0c;其有一个不太被容易发现的bug。 被插入的工作表&#xff08;sheet&#xff09;里面的单元格没有包含任何的注解&#xff08;comment&#xff09;的时候&#xff0c;插…

python导入模块以及类_python模块的导入以及模块简介

标签&#xff1a; 一、模块的定义及类型 1、定义 模块就是用一堆的代码实现了一些功能的代码的集合&#xff0c;通常一个或者多个函数写在一个.py文件里&#xff0c;而如果有些功能实现起来很复杂&#xff0c;那么就需要创建n个.py文件&#xff0c;这n个.py文件的集合就是模块 …

mnist手写数字数据集_mnist手写数据集(1. 加载与可视化)

》》欢迎 点赞&#xff0c;留言&#xff0c;收藏加关注《《1. 模型构建的步骤&#xff1a;在构建AI模型时&#xff0c;一般有以下主要步骤&#xff1a;准备数据、数据预处理、划分数据集、配置模型、训练模型、评估优化、模型应用&#xff0c;如下图所示&#xff1a;【注意】由…

python凯撒密码实现_密码:凯撒密码及其Python实现

python凯撒密码实现Before we start let’s some basic terminology... 在开始之前&#xff0c;让我们先介绍一些基本术语... The art and science to achieve security by encoding messages to make them unreadable are known as Cryptography. That’s what the whole art…

qtextedit 默认文案_QT-纯代码控件-QSplitter(分裂器)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循CC 4.0 by-sa版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/qq_41488943/article/details/96431379使用Qplitter实现页面的三布局分布1.新建一个无ui界面的工程&…

TYVJ P1030 乳草的入侵 Label:跳马问题

背景 USACO OCT09 6TH描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草。可惜天不从人愿&#xff0c;他在植物大战人类中败下阵来。邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地。草地像往常一样&#xff0c;被分割成一个高度為Y(1 < y < 100)…