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

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

开篇

这两天刚交了蓝桥杯的报名费,刷题的积极性高涨。算上打卡题,今天刷了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;
    }
}

结语

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

相关推荐
x***440111 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
向阳逐梦11 小时前
DC-DC Buck 电路(降压转换器)全面解析
人工智能·算法
小蒜学长11 小时前
基于spring boot的汽车4s店管理系统(代码+数据库+LW)
java·数据库·spring boot·后端·汽车
Mz122111 小时前
day04 小美的区间删除
数据结构·算法
q***420511 小时前
Spring Data 什么是Spring Data 理解
java·后端·spring
一 乐11 小时前
餐厅管理智能点餐系统|基于java+ Springboot的餐厅管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
Percep_gan11 小时前
解决java.security.InvalidKeyException: Illegal key size
java·开发语言
_OP_CHEN11 小时前
算法基础篇:(十九)吃透 BFS!从原理到实战,解锁宽度优先搜索的核心玩法
算法·蓝桥杯·bfs·宽度优先·算法竞赛·acm/icpc
小猪咪piggy12 小时前
【算法】day 20 leetcode 贪心
算法·leetcode·职场和发展
likuolei12 小时前
XQuery 完整语法速查表(2025 最新版,XQuery 3.1)
xml·java·数据库