YUNJU的个人博客分享 http://blog.sciencenet.cn/u/YUNJU

博文

【力扣每日一题】 找到所有数组中消失的数字

已有 1199 次阅读 2021-2-13 20:22 |个人分类:科研编程|系统分类:科研笔记

### 题目

给定一个范围在  1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。

示例:

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

输出:[5,6]


### 解题思路

仿多数元素解题思路写的,仍然使用通用的哈希表解题思路


### 代码

```java

class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List<Integer> list = new ArrayList<Integer>();
        int n=nums.length;
        int datas[]=new int[n];
        HashMap<Integer,Integer> map1 = new HashMap<>();
        HashMap<Integer,Integer> map2 = new HashMap<>();
        for(int i=1;i<=n;i++){
            datas[i-1]=i;
            map2.put(nums[i-1],1);
        }
        for(Integer data:datas){
            if(map2.containsKey(data)){
                map1.put(data,1);
            }else{
                map1.put(data,0);
            }
        }
        Set <Integer> keys = map1.keySet();  
        for(Integer key:keys) {
            if(map1.get(key)==0){
                list.add(key);
            }
        }
        return list;
    }
}

```




https://blog.sciencenet.cn/blog-3413575-1272041.html

上一篇:《七绝·辛丑新正》
下一篇:【学术软件】ETPS(English Text Processing Software)
收藏 IP: 113.129.111.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 02:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部