leetcode 448. Find All Numbers Disappeared in an Array
来源:互联网 发布:四川广电网络客服电话 编辑:程序博客网 时间:2024/06/05 18:09
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.
Find all the elements of [1, n] inclusive that do not appear in this array.
Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.
Example:
Input:[4,3,2,7,8,2,3,1]Output:[5,6]这个跟之前的一道题目思路类似,取反然后找没有被取反的Index。
import java.util.ArrayList;import java.util.List;public class Find_All_Numbers_Disappeared_in_an_Array448 {public List<Integer> findDisappearedNumbers(int[] nums) {List<Integer> list=new ArrayList<Integer>();int length=nums.length;for(int i=0;i<length;i++){int theVal=Math.abs(nums[i]);if(nums[theVal-1]>0){nums[theVal-1]=-nums[theVal-1];}}for(int i=0;i<length;i++){if(nums[i]>0){list.add(i+1);}}return list;}public static void main(String[] args) {// TODO Auto-generated method stubFind_All_Numbers_Disappeared_in_an_Array448 f=new Find_All_Numbers_Disappeared_in_an_Array448();int[] nums=new int[]{4,3,2,7,8,2,3,1};List<Integer> list=f.findDisappearedNumbers(nums);for(Integer i:list){System.out.print(i+" ");}}}大神的解法,还有一种思路类似,只不过是把取反变成了+n,遇到了就+n,最后找小于n的就是没出现过的。
public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> res = new ArrayList<>(); int n = nums.length; for (int i = 0; i < nums.length; i ++) nums[(nums[i]-1) % n] += n; for (int i = 0; i < nums.length; i ++) if (nums[i] <= n) res.add(i+1); return res;}
0 0
- LeetCode-Array-448. Find All Numbers Disappeared in an Array
- leetcode:448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- <leetcode>448.Find All Numbers Disappeared in an Array
- [LeetCode] 448. Find All Numbers Disappeared in an Array
- [LeetCode]448. Find All Numbers Disappeared in an Array
- leetcode 448. Find All Numbers Disappeared in an Array
- Leetcode 448. Find All Numbers Disappeared in an Array
- 【LeetCode】 448. Find All Numbers Disappeared in an Array
- 448. [LeetCode]Find All Numbers Disappeared in an Array
- [leetcode] 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- Leetcode-448. Find All Numbers Disappeared in an Array
- 【Leetcode】448. Find All Numbers Disappeared in an Array
- LeetCode - 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- LeetCode--448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array(Java)
- Add Two Numbers【LeetCode】
- 判断NSArray中元素所在位置
- NSArray Block遍历方法,NSDictory Block遍历方法
- 字符串拆分成数组,数组组合成字符串
- [leetcode]79. Word Search
- leetcode 448. Find All Numbers Disappeared in an Array
- JAVA——IO流 之 字节流与字符流(1)
- 统计学习方法读书笔记--4.朴素贝叶斯法
- String,StringBuffer与StringBuilder的区别
- latex总结
- 汉诺塔III
- Java Thread 源码解析
- [每日问答]特征选择有哪些方法?
- ReactNative学习历程