当前位置: 首页 > article >正文

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

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

开篇

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

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

题目描述在这里插入图片描述

代码思路

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

代码纯享版

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;
    }
}

代码逐行解析版

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;
    }
}

结语

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


http://www.kler.cn/a/132588.html

相关文章:

  • 已有docker增加端口号,不用重新创建Docker
  • 大语言模型通用能力排行榜(2024年11月8日更新)
  • 【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1
  • 2024年了,TCP分析工具有哪些?
  • 【配置后的基本使用】CMake基础知识
  • uniapp 跨域前端代理
  • 怎样正确做 Web 应用的压力测试?
  • 【js】 lodash命名转换和封装
  • 再次学习高精度
  • Vue3-ref、reactive函数的watch
  • LeetCode 面试题 16.22. 兰顿蚂蚁
  • PaddlePaddle:开源深度学习平台
  • React父组件怎么调用子组件的方法
  • c语言免杀火绒
  • centos7 网卡聚合bond0模式配置
  • vs2017打开工程提示若要解决此问题,请使用以下选择启动 Visual Studio 安装程序: 用于 x86 和 x64 的 Visual C++ MFC
  • Buildroot 添加 Qt 支持
  • 2023.11.18 - hadoop之zookeeper分布式协调服务
  • JVM——运行时数据区(程序计数器+栈)
  • django理解02 前后端分离中的问题
  • 栈和队列的初始化,插入,删除,销毁。
  • 详谈动态规划问题并解最大子数组和
  • 构建自定义ChatGPT,微软推出Copilot Studio
  • 使用 `spring-statemachine-redis` 实现状态机
  • Xrdp+Cpolar实现远程访问Linux Kali桌面
  • SecureCRT 9.4.2 for Mac