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 the does not appear in this array.
Could do it without extra space and in O (n) runtime? Assume the returned list does not count as extra space.
Example:
Input:
[4,3,2,7,8,2,3,1]
Output:
[5,6]
This problem asks to find out the data that disappears in the array, my problem-solving idea is to record the existing data through a pseudo hash table, and then traverse the display without statistics.
Public StaticList<integer> Finddisappearednumbers (int[] nums) {ArrayList<Integer> arrayList =NewArraylist<integer>(); int[] ary =New int[Nums.length+1]; for(inti = 0; i < nums.length; i++) {Ary[nums[i]]++; } for(inti = 1; i < ary.length; i++) { if(Ary[i] = = 0) {arraylist.add (i); } } returnarrayList; }
A better solution: http://www.cnblogs.com/grandyang/p/6222149.html
[Leetcode] 448.Find all Numbers disappeared in an Array