首页 > 其他分享 >Leetcode刷题448.找到所有数组中消失的数字

Leetcode刷题448.找到所有数组中消失的数字

时间:2023-09-21 18:55:37浏览次数:74  
标签:448 nums int 示例 List 数组 Leetcode 刷题

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

 

示例 1:

输入:nums = [4,3,2,7,8,2,3,1] 输出:[5,6]

示例 2:

输入:nums = [1,1] 输出:[2]

 

提示:

  • n == nums.length

  • 1 <= n <= 105

  • 1 <= nums[i] <= n

进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。

 

public List<Integer> findDisappearedNumbers(int[]nums){
        int n = nums.length;
        for (int num :nums){
            int x = (num-1)%n;//对n取模来还原出它本来值
            nums[x] +=n;
        }
        List<Integer> result = new ArrayList<Integer>();
        for (int i=0;i<n;i++){
            if (nums[i]<=n){
                result.add(i+1);
            }
        }
     return result;   
    }

 

标签:448,nums,int,示例,List,数组,Leetcode,刷题
From: https://www.cnblogs.com/buguniaogugu/p/17720693.html

相关文章

  • Leetcode刷题283.移动零
    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例1:输入:nums=[0,1,0,3,12]输出:[1,3,12,0,0]示例2:输入:nums=[0]输出:[0] 提示:1<=nums.length<......
  • LeetCode53.最大子数组和
    要求最大连续子数组的和,可以这样考虑,比如现在我想求下标 i~j,i<j 这一范围内子数组的和,那么我可以分别先求出 0~i-1 范围和 0~j 范围两个子数组的和,可得Sum[i~j]=Sum[0~j]-Sum[0~i-1] ,这就是本题解法的核心思想。解法详细描述:先从下标0开始,遍历 nums 数组,求出到当前下标......
  • leetcode 22 括号生成
    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"]提示:1<=n<=8  //这种用例很可能就是递归代码:classSolut......
  • 【LeetCode】LCP 06. 拿硬币
    描述桌上有​​n​​​堆力扣币,每堆的数量保存在数组​​coins​​中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。示例输入:​​[4,2,1]​​输出:​​4​​解释:第一堆力扣币最少需要拿2次,第二堆最少需要拿1次,第三堆最少需要拿1次,......
  • 【刷题笔记】56. Merge Intervals
    题目Givenacollectionofintervals,mergealloverlappingintervals.Example1:Input:[[1,3],[2,6],[8,10],[15,18]]Output:[[1,6],[8,10],[15,18]]Explanation:Sinceintervals[1,3]and[2,6]overlaps,mergetheminto[1,6].Example2:Input:[[1,4],[4,5......
  • #yyds干货盘点# LeetCode程序员面试金典:二叉搜索树的最近公共祖先
    题目:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root= [6,2......
  • #yyds干货盘点# LeetCode程序员面试金典:建立四叉树
    1.简述:给你一个 n*n 矩阵 grid ,矩阵由若干 0 和 1 组成。请你用四叉树表示该矩阵 grid 。你需要返回能表示矩阵 grid 的四叉树的根结点。四叉树数据结构中,每个内部节点只有四个子节点。此外,每个节点都有两个属性:val:储存叶子结点所代表的区域的值。1对应 True,0对......
  • 前端歌谣的刷题之路-第二十三题-检测复杂数据类型
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目请......
  • 前端歌谣的刷题之路-第二十四题-阶乘
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷本题目源自于牛客网微信公众号前端小歌谣题目请......
  • Leetcode刷题88. 合并两个有序数组
    给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了......