angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据
[LeetCode] 442. 数组中重复的数据
题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array
难度:中等
通过率:61.5%
题目描述:
给定一个整数数组 a,其中1 ≤ a[i] ≤ n ( n 为数组长度), 其中有些元素出现 两次 而其他元素出现 一次 。
找到所有出现 两次 的元素。
你可以不用到任何额外空间并在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
angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据相关推荐
- python去重复排序_Python实现删除排序数组中重复项的两种方法示例
本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...
- java如何找重复数字_Java如何找出数组中重复的数字
题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...
- vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素
题目链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/) 题目描述: 在未排序的数组中找到第 k 个最大的元素.请 ...
- 努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]
文章目录 题目描述-448 一.哈希Map 二.空间复杂度的优化--鸽笼原理 三.总结 题目描述-442 一.还是hashMap 二.继续鸽笼原理 题目描述-41 一.基础方案 二.数组模拟Map 题 ...
- leetcode 442. Find All Duplicates in an Array | 442. 数组中重复的数据(位运算)
题目 https://leetcode.com/problems/find-all-duplicates-in-an-array/ 题解 没想出来,看了评论之后写的,一语点醒. 思路就是,用num对应 ...
- <力扣刷题>442. 数组中重复的数据
前言 人生如逆旅,我亦是行人.----苏轼<临江仙·送钱穆父> 题: 给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 ...
- 442. 数组中重复的数据
给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题 ...
- c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...
大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...
- java从数组查找指定整数_如何在Java中使用重复项查找整数数组中的K个缺失数字?...
java从数组查找指定整数 自从我讨论任何编码或算法面试问题以来已经有很长时间了,因此我想重新考虑一种最流行的基于数组的编码问题,即在给定数组中查找缺失的数字. 在进行编程工作面试之前,您可能已经听说 ...
最新文章
- Tcpdump命令的使用与示例——linux下的网络分析
- Ubuntu创建opencv工程并显示一张图片
- C#实现微信AES-128-CBC加密数据的解密
- linux安装vi 插件,Ubuntu上Vim安装NERDTree插件的详细操作步骤
- Electron 实战桌面计算器应用
- ipsec ***概念(一)
- 【算法导论】学习笔记——第16章 贪心算法
- 淘淘商城之技术选型、开发工具和环境、人员配置
- JDK源码(11)-Long、Short
- char型变量能不能存储一个中文汉字重写和重载的规则
- 移植qt常见错误修改方法
- sscanf函数用法详解_「MOS考点详解」一道例题详解GETPIVOTDATA函数的用法
- CCSpriteBatchNode(附:CCMenu与CCSpriteBatchNode的问题)
- nodePPT初认识启动与手机控制
- mplayer命令行模式下的使用方法
- Windows 10 Install SQL Server 2005
- tomcat 环境迁移至weblogic 下载文件失败
- MySQL 重置密码
- Sails基础之Models层的config/datastores配置
- android通知详解