【算法萌新闯力扣】:找到所有数组中消失对数字

力扣热题:找到所有数组中消失对数字

开篇

这两天刚交了蓝桥杯的报名费,刷题的积极性高涨。算上打卡题,今天刷了10道算法题了,题目都比较简单,挑选了一道还不错的题目与大家分享。

题目链接:448.找到所有数组中消失对数字

题目描述

代码思路

把数组先排序,然后利用桶排来统计数组中存在的元素,对于数量为0的元素则存入list集合中,最后返回list集合

代码纯享版

java 复制代码
class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List<Integer> list = new ArrayList<>();
        Arrays.sort(nums);
        int[] a = new int[nums.length + 1];
        for(int i = 0; i < nums.length; i++){
            a[nums[i]]++;
        }
        for(int i = 1; i <= nums.length; i++){
            if(a[i] == 0)list.add(i);
        }
        return list;
    }
}

代码逐行解析版

java 复制代码
class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        List<Integer> list = new ArrayList<>(); //创建list集合保存没有出现的数字
        Arrays.sort(nums); //利用sort方法使数组元素从小到大排序
        int[] a = new int[nums.length + 1]; //创建数组
        for(int i = 0; i < nums.length; i++){ //桶排,统计数组中每个元素出现的次数
            a[nums[i]]++; 
        }
        for(int i = 1; i <= nums.length; i++){ //a[i] == 0说明这个数数消失的,符合题目要求
            if(a[i] == 0) list.add(i);
        }
        return list;
    }
}

结语

如果这道题的分享对你有帮助,点个关注,我会每天更新力扣题目的讲解,我们一起进步。

相关推荐
柳贯一(逆流河版)12 分钟前
Spring 三级缓存:破解循环依赖的底层密码
java·spring·缓存·bean的循环依赖
强德亨上校24 分钟前
贪心算法(Greedy Algorithm)详解
算法·贪心算法
浮灯Foden1 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
该用户已不存在2 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?
java·后端
西工程小巴2 小时前
实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
c语言·算法·嵌入式
TT哇2 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
Tina学编程2 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
java·算法
Moonbit2 小时前
MoonBit Perals Vol.06: MoonBit 与 LLVM 共舞 (上):编译前端实现
后端·算法·编程语言
青川入梦3 小时前
MyBatis极速通关上篇:Spring Boot环境搭建+用户管理实战
java·开发语言·mybatis
执子手 吹散苍茫茫烟波3 小时前
leetcode415. 字符串相加
java·leetcode·字符串