给定一个整数数组,1 ≤ a[i] ≤ n(n = 数组的大小),一些元素出现两次,其他元素出现一次。

找到在此数组中出现两次的所有元素。

find-all-duplicates-in-an-array

样例

样例1

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

样例2

输入:
[10,2,5,10,9,1,1,4,3,7]
输出:
[1,10]
分析求数组中出现的重复数字
思路1、遍历数组,使用map 存储数组中的元素跟个数遍历 map val 大于1 的存到 集合就好思路2、我们发现对数组的所有元素均有1 <= a[i] <=n ,也就是说对于所有a[a[i]-1]均为合法下标。由此引出如下做法:对于每个a[i],我们将其对应的a[a[i]-1]取相反数,如果已经为负数则将a[i]加入答案中。
public class Solution {/*** @param nums: a list of integers* @return: return a list of integers*/public List<Integer> findDuplicates(int[] nums) {// write your code hereif (nums == null || nums.length == 0) {return null;}Map<Integer,Integer> map = new HashMap<>();for (int num : nums) {map.put(num, map.getOrDefault(num, 0) + 1);}List<Integer> list = new ArrayList<>();for (Integer key : map.keySet()) {if (map.get(key)>1) {list.add(key);}}return list;}
}
public class Solution {/*** @param nums: a list of integers* @return: return a list of integers*/public List<Integer> findDuplicates(int[] nums) {List<Integer> res = new ArrayList<>();for (int i = 0; i < nums.length; i++) {int index = Math.abs(nums[i]) - 1;if (nums[index] < 0) {res.add(Math.abs(nums[i]));} else {nums[index] = -nums[index];}}return res;}
}

源码地址: https://github.com/xingfu0809/Java-LintCode

查找数组中的所有重复项相关推荐

  1. Leetcode刷题100天(阿里云周赛)—查找数组中的所有重复项(哈希)—day42

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 描述 给定一个整数数组,1 ≤ a[i] ≤ n(n = 数组的大小),一些元素出现两次,其他元素出现一次. 找到在此数组中出现两次的所有元素. 示例 ...

  2. es6去除重复项_javascript在ES6中从数组中筛选出重复项并仅返回唯一值

    这是从数组中筛选出重复项并仅返回唯一值的三种方法.我最喜欢的是使用Set,因为它是最短和最简单的. 1.使用Set 首先让我解释一下Set:Set是ES6中引入的新数据对象.因为Set仅允许您存储唯一 ...

  3. 判断对象数组中是否存在重复项

    需求:判断对象数组中是否存在重复项 解决思路:根据数组去判断是否有重复项. 首先将对象数组转成数组(提取重复的选项) 然后判断数组是否存在重复项即可. 注:此方法适用于单个决定性条件导致重复的对象,多 ...

  4. C#判断字符串数组中是否有重复项

    bool hasRepeat(string[] strs) {for (int i = 1; i < strs.Length; i++)for (int j = 0; j < i; j++ ...

  5. 快速查找数组中重复项下标

    快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...

  6. 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)

    题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现) 题目: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字 ...

  7. Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素-un

    ylbtech-Java-Runoob-高级教程-实例-数组:10. Java 实例 – 查找数组中的重复元素 1.返回顶部 1. Java 实例 - 查找数组中的重复元素  Java 实例 以下实例 ...

  8. php 查找数组相同元素,查找数组中重复的元素

    本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...

  9. js判断数组中重复元素并找出_javascript查找数组中重复元素的方法

    这篇文章主要介绍了JS查找数组中重复元素的方法,结合具体实例形式对比分析了javascript针对数组的遍历.判断.排序等相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS查找数组中重复元素的方法 ...

最新文章

  1. KVM虚拟化存储管理
  2. ps光效插件_全套光效PS插件(2019),只有你想不到的,没有它做不到的PS特效...
  3. linux VM映像chroot注入修改root密码
  4. java 为什么重写equals一定要重写hashcode?
  5. 当一百万名记者都嚷嚷着“Facebook 很糟糕”......
  6. 85元一个万能工具箱,配齐24种螺丝刀+扳手,媲美德国工艺,家庭必备
  7. 整数存储怎么转化为浮点数_非整数值如何存储在浮点数中(以及为什么要浮点数)...
  8. ZZULIOJ 1068:二进制数
  9. WDS部署服务所用的PXE引导文件
  10. Razor的主版页面框架
  11. 普林斯顿陈丹琦:如何让「大模型」变小
  12. SiTime硅晶振温度传感技术
  13. 16进制颜色值与百分比颜色值的换算关系
  14. 台式计算机有不有蓝牙,台式机没有蓝牙怎么办
  15. 打开或关闭windows功能时,提示“出现错误。并非所有的功能被成功更改” 已解决
  16. Aardio 第一天:使用虚表和适配器+试融合Java
  17. 小企业仓库管理软件设计开发
  18. js获取当前月有几周(附带一个小组件)
  19. 基本尺寸,实际尺寸,作用尺寸,极限尺寸,最大实体尺寸,最小实体尺寸
  20. 【字体在哪个文件夹】Win7怎么安装字体

热门文章

  1. 手把手教学搭建抖音短视频源码,包教包会一对一直播程序开发--布谷鸟科技...
  2. 【Attention】Dual Attention(DANet) Fully Attention(FLA)
  3. 华为FreeBuds 3、3i、FreeLace耳机无法连接配对苹果?
  4. php cs fixer config,php-cs-fixer
  5. PCA(主成分分析)和LDA(线性判别分析)的异同处及应用场景
  6. 公众号如何快速涨粉?教你公众号截流技术快速获取粉丝
  7. 2013年NBA球员排名
  8. Ubuntu 10.04下安装TL-WN721N(RT5370)无线网卡驱动
  9. Shopee运费怎么算的?虾皮物流运费表
  10. css加载不起作用,webpack css loader不起作用