题目:

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

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

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

示例:

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

解题:

class Solution {public List<Integer> findDuplicates(int[] nums) {List<Integer> res = new ArrayList<>();if (nums == null || nums.length == 0) return res;for (int i = 0; i < nums.length; i++) {int index = Math.abs(nums[i]) - 1;if (nums[index] > 0) nums[index] *= -1; //用负号表示已经有一次了else {res.add(index + 1); //index + 1 == Math.abs(nums[i])
            }}return res;}
}

转载于:https://www.cnblogs.com/yanhowever/p/10896984.html

leetcode 442. 数组中重复的数据 java相关推荐

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

    [LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...

  2. 努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]

    文章目录 题目描述-448 一.哈希Map 二.空间复杂度的优化--鸽笼原理 三.总结 题目描述-442 一.还是hashMap 二.继续鸽笼原理 题目描述-41 一.基础方案 二.数组模拟Map 题 ...

  3. <力扣刷题>442. 数组中重复的数据

    前言 人生如逆旅,我亦是行人.----苏轼<临江仙·送钱穆父> 题: 给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 ...

  4. leetcode 442. Find All Duplicates in an Array | 442. 数组中重复的数据(位运算)

    题目 https://leetcode.com/problems/find-all-duplicates-in-an-array/ 题解 没想出来,看了评论之后写的,一语点醒. 思路就是,用num对应 ...

  5. 442. 数组中重复的数据

    给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题 ...

  6. 【剑指offer】面试题03:数组中重复的数字(java)

    在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字. 示例 1: ...

  7. java数组中重复_数组中重复的数字 java

    今天开始用java写算法题目. 题目大意,一个长度为 n 的数组,里面存放的数组是 0 到 n-1,数组中有重复数字的话就输出这个数字. 思路:将每个 nums[i] 的值 移动到他原来应该属于的地方 ...

  8. Array.splice()--删除数组中重复的数据

    splice方法 从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素. 用法 my_array.splice(start, deleteCount [, val ...

  9. leetcode442. 数组中重复的数据

    给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题 ...

  10. Leetcode--442. 数组中重复的数据

    给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题 ...

最新文章

  1. JavaMoney规范(JSR 354)与对应实现解读
  2. springboot 日志 log4j
  3. Visual Studio 2012 调试程序加载缓慢,提示正在下载符号
  4. Java带有运算符的字符串转换为Long型
  5. 【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
  6. 这些年遇到的坑爹问题汇总
  7. REM,你这磨人的小妖精!
  8. 先序、中序确定二叉树
  9. 60秒验证码倒计时重置
  10. python变量和对象的关系_Python变量与对象引用的区别
  11. ccfb类会议有哪些_CCF推荐国际学术会议
  12. Ubuntu虚拟机实现与主机之间复制粘贴
  13. 14家互联网公司裁员(1-2月裁员清单)
  14. 用U880做热点 使电脑上网(绑定usb和便携式wlan热点)
  15. 关于“应用程序正常初始化(0xc0150002)失败”问题的解决方案
  16. Linux 运维职业困惑?给你史上最全互联网 Linux 工作规划!
  17. php判断浏览器语言国内外,PHP判断浏览器语言
  18. 组织级项目管理和项目集、项目组合管理
  19. python画圆形螺旋线_【Python基础】利用 Python 搞定精美网络图!
  20. MPU6050开发 -- 测试程序分析

热门文章

  1. Tensorflow相关学习笔记(一)GPU处理相关
  2. (备忘)Java web项目迁移到Centos7中验证码无法显示
  3. IP通信基础 3月6日
  4. Redies安装,修配置,设置密码,
  5. 51nod 1050 循环数组最大子段和 单调队列优化DP
  6. PLAY2.6-SCALA(五) Action的组合、范围的设置以及错误的处理
  7. MyBatis学习(一):简单的运行
  8. 对Ajax返回的json数据做处理报错
  9. ubuntu-12.04.5-desktop-amd64.iso:ubuntu-12.04.5-desktop-amd64:安装Oracle11gR2
  10. NYOJ4——ASCII码排序