Leetcode:【448. 找到所有数组中消失的数字】题解

这篇具有很好参考价值的文章主要介绍了Leetcode:【448. 找到所有数组中消失的数字】题解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目

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

难度:简单

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

示例1

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

示例2

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

解题思路:

题目意思是再在有 n 个元素的数组中,找出[1,n]中没有出现的数组,其中 n 个元素中,可能会出现重复的元素,于是 我们就可以 再次创建一个临时数组tmp(每个元素置0),存放相应的元素来取消重复的元素。然后遍历整个数组,如果元素为零,则为没有出现在nums中的数字。

代码展示

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
 
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
    int *arr = (int*)malloc(sizeof(int)*numsSize);//用于返回的数组
    int tmp[100000] = {0};
    int i = 0;
    int x = 0;
    for(i = 0;i<=numsSize;i++)
    {
        tmp[i] = 0;
    }
    for(i = 0;i<numsSize;i++)
    {
        x = nums[i]%(numsSize+1);
        tmp[x-1] = x;
    }
    i = 1;
    int count  = 0;//记录返回数组的大小
    int j = 0;
    for(i = 1;i<=numsSize;i++)
    {
        if(tmp[i-1] == 0)
        {
            arr[j++] = i;
            count++;
        }
    }
    *returnSize = count;
    return arr;
}

【解析】

这里的arr数组用于返回数组,tmp 临时数组主要用来消除重复的元素,主要思路

Leetcode:【448. 找到所有数组中消失的数字】题解,【leetcode】题解,c语言,算法,leetcode

通过对循环每一个数组元素,对其进行取模运算,再将其放入对应的下标的数组中

但是前提是 要对 tmp数组每一个元素置0

 Leetcode:【448. 找到所有数组中消失的数字】题解,【leetcode】题解,c语言,算法,leetcode

 放入对应的下标的数组中后,

Leetcode:【448. 找到所有数组中消失的数字】题解,【leetcode】题解,c语言,算法,leetcode

 开始遍历数组,找出[1,n] 中没有出现在nums数组中的数字

    for(i = 1;i<=numsSize;i++)
    {
        if(tmp[i-1] == 0)
        {
            arr[j++] = i;
            count++;
        }
    }

接着就是返回  返回数组的大小和返回数组了。

    *returnSize = count;
    return arr;

Leetcode:【448. 找到所有数组中消失的数字】题解,【leetcode】题解,c语言,算法,leetcode文章来源地址https://www.toymoban.com/news/detail-682247.html

到了这里,关于Leetcode:【448. 找到所有数组中消失的数字】题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 找到所有数组中消失的数(C语言详解)

    题目:找到所有数组中消失的数 题目详情: 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1,n] 内。请你找出所以在 [1,n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 示例1: 输入:nums = [ 4,3,2,7,8,2,3,1 ] 输出:[ 5,6 ]  示例2: 输入:nums

    2024年02月11日
    浏览(32)
  • leetcode刷题:消失的数字

    数组 nums 包含从 0 到 n 的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意: 本题相对书上原题稍作改动 示例 1: 示例 2: 针对于这道题,我们提供了三种解法: 首先使用快排对数组进行排序,使其变成有序数组,由题意得

    2024年01月24日
    浏览(39)
  • leetcode消失的数字

    数组 nums 包含从 0 到 n 的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在 O ( n ) O(n) O ( n ) 时间内完成吗? 示例 1: 输入:[3,0,1] 输出:2 leetcode链接:消失的数字 ⭕️ 思路1: 第一种思路时间复杂度 O ( N ) O(N) O ( N ) ,空间复杂度 O ( N ) O(N) O ( N ) 。

    2024年02月11日
    浏览(36)
  • 【leetcode】消失的数字

    大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 点击查看题目 通过2个for循环,遍历查找0-n中缺少的数字,比较简单,不写,时间复杂度为O(N^2) 点击去了解异或,位置在④.3 异或:两个整数的相同位置:相同为0,不

    2024年01月22日
    浏览(44)
  • LeetCode:面试题:消失的数字——时间复杂度

    题目:数组nums中包含0~n的所有整数,但其中缺失了一个数,请写代码找出那个缺失的整数,要求在时间复杂度为O(N)的时间内完成 思路1:冒泡排序+遍历(下一个数不等于上一个数+1,这个下一个数就是消失的数) 世间复杂度O(logN*N) 代码: 运行结果: 思路2:0+N利用等

    2024年02月16日
    浏览(40)
  • Leetcode:349. 两个数组的交集【题解超详细】

    题目 给定两个数组  nums1  和  nums2  ,返回  它们的交集  。输出结果中的每个元素一定是  唯一  的。我们可以  不考虑输出结果的顺序  。 难度: 简单 题目链接:349.两个数组的交集 示例 1: 示例 2: 提示: 1 = nums1.length, nums2.length = 1000 0 = nums1[i], nums2[i] = 1000 思路解析

    2024年02月09日
    浏览(39)
  • Leetcode24-找到两个数组中的公共元素(2956)

    给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,它们分别含有 n 和 m 个元素。 请你计算以下两个数值: 统计 0 = i n 中的下标 i ,满足 nums1[i] 在 nums2 中 至少 出现了一次。 统计 0 = i m 中的下标 i ,满足 nums2[i] 在 nums1 中 至少 出现了一次。 请你返回一个长度为 2 的整数数组

    2024年01月20日
    浏览(44)
  • (C语言版)力扣(LeetCode)面试题 17.04. 消失的数字5种解法

    该题目取自力扣(LeetCode)面试题 17.04. 消失的数字 链接:消失的数字 该题目主要考察时间复杂度的把握,题目如下: 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 注意:本题相对书上原题稍作改动 示例

    2023年04月14日
    浏览(41)
  • C++ | Leetcode C++题解之第30题串联所有单词的子串

    题目: 题解:

    2024年04月15日
    浏览(49)
  • Leetcode:238. 除自身以外数组的乘积【题解超详细】

    纯C语言实现(小白也能看明白) 题目 给你一个整数数组  nums ,返回  数组  answer  ,其中  answer[i]  等于  nums  中除  nums[i]  之外其余各元素的乘积  。 题目数据  保证  数组  nums 之中任意元素的全部前缀元素和后缀的乘积都在   32 位  整数范围内。 请 不要使用除

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包