news 2026/10/31 4:15:14

力扣448题:找到所有数组中消失的数字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣448题:找到所有数组中消失的数字

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

对于题目的理解,容易错的地方是nums数组里面是有n个数的,n个数是存在重复的几个,我们是要找到其中存在的那些数。

采取的方法,我是从数组的索引来开始;数组的索引是从0到n-1的,所以与从1到n来会差1的;通过给数组的值取绝对值(避免索引为负的情况)再减以,就是与索引开始一一对应的。然后我把所有nums[index]>0的情况下,标记为负,(因为数组中有的数字是会重复的,所以可以通过这个来找到未出现的数字);后面还有第二个循环,其是要找到nums[i]>0的就是消失的那个数字,返回i+1。

代码:

class Solution {

public List<Integer> findDisappearedNumbers(int[] nums) {

// 第一遍:标记出现过的数字(索引 = 数字-1)

for (int i = 0; i < nums.length; i++) {

int index = Math.abs(nums[i]) - 1; // 取绝对值避免重复标记影响 减1是为了回到数组索引

if (nums[index] > 0) {

nums[index] = -nums[index]; // 标记为负

}

}

// 第二遍:收集未被标记的位置(即消失的数字)

List<Integer> result = new ArrayList<>();

for (int i = 0; i < nums.length; i++) {

if (nums[i] > 0) {

result.add(i + 1);

}

}

return result;

}

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 22:25:40

28.FPGA实验报告模板(串口为例)

一、实验概述 1. 实验目的 实现常用模块&#xff1a;串口模块&#xff0c;可以用来打印调试信息&#xff0c;可以通过上位机输入指令。 2. 实验环境&#xff08;开发板型号、EDA工具版本等&#xff09; 开发板型号&#xff1a;MLK-F20-CM02-4EV EDA版本&#xff1a; Vivado…

作者头像 李华
网站建设 2026/10/28 12:49:25

大模型应用之使用LangChain实现RAG(一)

LangChain介绍 2022年10月LangChain由 Lson Chase 创建&#xff0c;LangChain围绕 LLMs&#xff08;大语言模型&#xff09;建立&#xff0c;为各种 LLMs 实现通用接口&#xff0c;简化 LLMs 相关开发&#xff0c;方便开发者快速构建复杂的 LLMs 应用。 LangChain 是一个用于开…

作者头像 李华
网站建设 2026/10/31 14:00:06

基于Spring Boot的绥大学生学习平台管理系统的设计与实现

&#x1f345; 作者主页&#xff1a;Selina .a &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

作者头像 李华
网站建设 2026/10/30 9:03:35

哪些招聘软件平台效果好?最新招聘平台权威排行

哪些招聘软件平台效果好&#xff1f;最新招聘平台权威排行在求职竞争日益激烈的当下&#xff0c;选择一个高效、真实、匹配度高的招聘平台&#xff0c;已成为职场人成功入职的关键一步。据《中国日报网》《新京报》等多家权威媒体2025—2026年报道&#xff0c;传统“海投简历”…

作者头像 李华