您的位置 首页 JAVA(2017)

LeetCode – 448. Find All Numbers Disappeared in an Array

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]

 

public class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List res = new ArrayList();
        int size = 0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]>size){
                size = nums[i];
            }
        }
        if(nums.length > size){
            size = nums.length;
        }
        int[] arr = new int[size+1];
        for(int i=0;i<nums.length;i++){
            arr[nums[i]]++;
        }
        for(int i=1;i<arr.length;i++){
            if(arr[i] ==0){
                res.add(i);
            }
        }
        return res;
    }
}
看完了?留个评分呗?
[0人评了分,平均: 0/5]

本站原创文章皆遵循“署名-非商业性使用-相同方式共享 3.0 (CC BY-NC-SA 3.0)”。转载请保留以下标注:

原文来源:《LeetCode – 448. Find All Numbers Disappeared in an Array》

发表评论

电子邮件地址不会被公开。

返回顶部