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

【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]

解题思路 (时间复杂度O(n))

#include <stdlib.h>

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {

    int* appeared = (int*)calloc(numsSize, sizeof(int)); // 初始化标记数组:appeared数组用于标记1到n之间的数字是否在nums中出现。数组初始化为0,表示所有数字初始时都未出现。

    int* ret = (int*)malloc(numsSize * sizeof(int));
    int retIndex = 0; 

    for (int i = 0; i < numsSize; i++) {
        if (nums[i] > 0 && nums[i] <= numsSize) { // 标记出现的数字:遍历nums数组,对于每个数字nums[i],如果它在1到n之间,则将appeared[nums[i] - 1]标记为1。这里减1是因为数组索引从0开始。
            appeared[nums[i] - 1] = 1; 
        }
    }

    for (int i = 0; i < numsSize; i++) { // 找到未出现的数字:再次遍历appeared数组,对于每个未标记的数字(即appeared[i] == 0),将i + 1(因为数字从1开始)添加到返回数组ret中。
        if (appeared[i] == 0) {
            ret[retIndex++] = i + 1; 
        }
    }

    *returnSize = retIndex; // 设置返回数组的大小:returnSize指向返回数组的大小,即retIndex。

    free(appeared); // 释放标记数组:释放appeared数组,避免内存泄漏。

    return ret; 
}

执行结果

在这里插入图片描述


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

相关文章:

  • 1.两数之和--力扣
  • 分布式一致性CAP与BASE理论、分布式一致性协议和算法——2PC、3PC 和 Paxos算法
  • Java 继承
  • android四大组件之一——Service
  • 关于扫描模型 拓扑 和 传递贴图工作流笔记
  • 【开源免费】基于SpringBoot+Vue.JS共享汽车管理系统(JAVA毕业设计)
  • Cannot find -lgL
  • 【IEEE出版,连续4年EI收录,检索稳定 |南京航空航天大学主办,航空航天交叉研究院承办】第五届传感器与信息技术国际学术会议(ICSI 2025)
  • 如何从 Keycloak 的 keycloak-themes.jar 中提取原生主题并自定义设置
  • Chapter 4.6:Coding the GPT model
  • 【python进阶——用类实现数据组织】
  • LeetCode 热题 100 | 双指针
  • Git:Cherry-Pick 的使用场景及使用流程
  • 基于Java+SpringMvc+Vue技术的宠物分享平台
  • 省森林防火应急指挥系统
  • 2024 年 8 月公链行业研报:Layer 1、比特币 Layer 2 和以太坊 Layer 2 趋势分析
  • 构建高效的进程池:深入解析C++实现
  • 解决:离线部署Docker容器(使用Docker现有容器生成镜像,将镜像打包成tar并发布到离线服务器中)
  • uni-app支付宝、微信小程序实现拨打电话uni.makePhoneCall
  • 《拉依达的嵌入式\驱动面试宝典》—操作系统篇(九)
  • 又更新了一个list转树状结构的工具类
  • 辅助--Inspector
  • QT + Opencv 实现灰度模板匹配
  • SVM赛道概览:MoveVM落地,SVM能走多远
  • 食堂采购系统源码:基于PHP的校园食堂供应链管理平台开发全解析