6.每日LeetCode-数组类,找到所有数组中消失的数字(Go)

news2024/10/7 8:29:25

题目

448找到所有数组中消失的数字.go
给你一个含 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) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。

解法

package main

import "fmt"

// 448找到所有数组中消失的数字.go
// 给你一个含 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) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。

// 使用 map 非常简单,但不满足进阶
func findDisappearedNumbers1(nums []int) []int {
	slice := make([]int, 0)
	mp := make(map[int]bool, len(nums))
	for _, val := range nums {
		mp[val] = true
	}
	for i := 1; i <= len(nums); i++ {
		if _, ok := mp[i]; !ok {
			slice = append(slice, i)
		}
	}
	return slice
}

// 1. 范围为1到n,
// 2. 将每个数-1取模, 如果按顺序就得到该值应该在的index处, 将该index处的值+n, 那么在该范围的值都应该大于n
// 3. 此时我们找出值小于n的index, 即为缺失的数字
// 时间复杂的O(n) 空间复杂度O(1)
func findDisappearedNumbers(nums []int) []int {
	var rst []int
	n := len(nums)
	for i := 0; i < n; i++ {
		idx := (nums[i] - 1) % n
		nums[idx] = nums[idx] + n
	}
	for i := 0; i < n; i++ {
		if nums[i] <= n { // 因为n也可能缺失,所以是小于等于
			rst = append(rst, i+1) // 该坐标值+1 就是该值, 因为是1到n,而坐标从0开始
		}
	}
	return rst
}

func main() {
	nums := []int{4, 3, 2, 7, 8, 2, 3, 1}
	fmt.Println(findDisappearedNumbers(nums))
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818989.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后仿真中《SDF反标必懂连载篇》之 <INTERCONNECT/IOPATH> 庐山面目

对于SDF INTERCONNECT ENTRY 描述&#xff0c;我们在之前的文章有详解。 读万卷书&#xff0c;行万里路。 实践很重要。 今天&#xff0c;搞一下SDF INTERCONNECT / IOPATH 延迟数据信息&#xff0c;究竟反标的是哪一路径延时&#xff1f; 一 IOPATH (CELL(CELLTYPE …

STM32F103C8T6 IAP升级

目录 0x00 前言0x01 flash分区0x02 Bootloader0x02 APP设置0x03 升级程序编写0x04 固件烧录 0x00 前言 STM32有三种烧录程序的方式&#xff1a;烧录器下载、拉高boot1进行串口下载(ISP)还有通过在 Bootloader中进行flash擦除和写入(IAP)。 在进行开发之前&#xff0c;你需要了…

上海晋名室外危废品暂存柜助力储能电站行业危废品安全储存

近日又有一台SAVEST室外危废暂存柜项目成功验收交付使用&#xff0c;此次项目主要用于储能电站行业废油、废锂电池等危废品的安全储存。 用户单位在日常工作运营中涉及到废油、废锂电池等危废品的室外安全储存问题。4月中旬用户技术总工在寻找解决方案的过程中搜索到上海晋名的…

蒂姆·库克解释Apple Intelligence和与ChatGPT合作的区别|TodayAI

在2024年全球开发者大会&#xff08;WWDC 2024&#xff09;上&#xff0c;苹果公司首席执行官蒂姆库克&#xff08;Tim Cook&#xff09;隆重介绍了公司的最新人工智能&#xff08;AI&#xff09;计划——Apple Intelligence&#xff0c;并宣布了与OpenAI的ChatGPT的合作。虽然…

突破管理瓶颈:基于前端技术的全面预算编制系统解析

前言 在现代商业环境中&#xff0c;预测销售数据和实际成本是每个公司CEO和领导都极为重视的关键指标。然而&#xff0c;由于市场的不断变化&#xff0c;准确地预测和管理这些数据变得愈发具有挑战性。为了应对这一挑战&#xff0c;建立一个高效的系统来管理和审查销售数据的重…

展位展台设计要注意的问题

1、选择专业的展台设计公司 特装比一般展位设计更要保证展台的独特性&#xff0c;更具可塑性。任何疑问和要求都能得到专业的解答。不论是展台的整体结构&#xff0c;还是展台搭建材料&#xff0c;都能实现良好的沟通&#xff0c;两方面都可以确保参加展会的双赢。 2、缜密的展…

智能家居建材,打造未来家居生活

智能家居建材&#xff0c;正引领着家居行业的新潮流。它融合了先进的科技与人性化的设计&#xff0c;为我们打造了一个充满未来感的家居新体验。 想象一下&#xff0c;当你走进家门&#xff0c;智能门锁自动识别你的身份&#xff0c;轻轻一推即可进入。室内环境自动调节到最舒适…

生成式人工智能 - 本地windows 11 + PyCharm运行stable diffusion流程简述

一、环境说明 硬件:本地电脑windows11、32.0 GB内存、2060的6G的卡。 软件:本地有一个python环境,主要是torch 2.2.2+cu118 二、准备工作 1、下载模型 https://huggingface.co/CompVishttps://huggingface.co/CompVis 进入上面的网址,我这里下载的是这个里面的 …

达到1k stars后,我对大模型开源教程的反思!(附教程)

前 言 “五一”节后第一个开心的消息是我们开源的大模型基础项目(https://github.com/datawhalechina/so-large-lm)已经达到1k stars⭐️了。这个开源项目是为了提供浅显易懂且前沿的大模基础知识而打造的&#xff0c;能收获1k个stars⭐️也是对这个项目的肯定。我为一起付出努…

软考初级网络管理员_07_网络单选题

1.观察交换机状态指示灯初步判断交换机故障&#xff0c;交换机运行中指示灯显示红色表示()。 警告 正常 待机 繁忙 2.通常测试网络连通性采用的命令是()。 Netstat Ping Msconfig Cmd 3.一台16端口的交换机可以产生&#xff08;&#xff09;个冲突域? 1 4 15 16…

诊所管理系统如何重塑患者就医流程

随着信息技术的快速发展&#xff0c;诊所管理系统的应用正在为医疗服务带来革命性的变化。这一系统不仅仅是一种管理工具&#xff0c;更是一种全方位的健康管理解决方案&#xff0c;从诊前、诊中到诊后&#xff0c;为患者提供了一系列便捷、高效的服务&#xff0c;让患者的就医…

Java代码实现获取一个文件夹下所有文件名并输出到指定的txt文件中

当一个文件夹中文件过多时&#xff0c;且需要知道次序跟名称时&#xff0c;下面用一段Java代码来实现&#xff1a; 输出一个文件夹内所有的文件名并在前面标上序号&#xff0c;输出到一个文本文件中 最终效果 序号文件名列表 完整代码 import java.io.File; import java.i…

PostgreSql中使用to_char函数、date()函数可能会导致索引无法充分利用,导致查询速度无法提升

今天在处理接口请求速度慢的问题&#xff0c;惊奇的发现加了索引&#xff0c;但还是请求很忙。由于card_stop_info表有300w条数据&#xff0c;这时候关联查询非常慢&#xff0c;于是我加上匹配项索引&#xff0c;但是发现依然没有改变速度。。这时候去搜了一下才知道pgsql的to_…

随手记:uniapp图片展示,剩余的堆叠

UI效果图&#xff1a; 实现思路&#xff1a; 循环图片数组&#xff0c;只展示几张宽度就为几张图片边距的宽度&#xff0c;剩下的图片直接堆叠展示 点击预览的时候传入当前的下标&#xff0c;如果是点击堆叠的话&#xff0c;下标从堆叠数量开始计算 <template><…

比人工快100倍!给3D模型用上轻量化,老爷机也能起飞!!!!!!

3D可视化开发&#xff0c;考虑最多的要素&#xff0c;当属模型加载流畅度和应用性。但面对单位的电脑、不能升级硬盘的笔记本等&#xff0c;可能还是无法体会到模型丝滑加载的畅快。 况且3D模型数据、格式等&#xff0c;也在不断发展扩充&#xff0c;昔日手工就能“调教”的3D…

CSS Flexbox(弹性布局)

目录 &#x1f587;️什么是弹性布局&#xff1f; &#x1f587;️容器属性 ○ flex-direction ○ justify-content ○ align-items ○ flex-warp ○ align-content &#x1f587;️项目属性 ○ order ○ flex &#x1f587;️总结 提示: 如果你是小白&#xff0c;不…

CentOS7安装nginx【巨详细】

CentOS7安装nginx 安装依赖 1.安装gcc&#xff0c;nginx 编译时依赖 gcc 环境 # 安装c yum install gcc-c# 查看版本 gcc -v正常情况显示如下 2.安装openssl 安全套接字层密码库&#xff0c;用于通信加密 yum install -y openssl openssl-devel3.安装zlib,zlib 库 提供了很多…

linux搭建sftp服务

1. 添加用户及用户组 使用 groupadd sftpgroup 添加sftpgroup 用户组&#xff1b; 使用useradd -G sftpgroup -s /sbin/nologin cmssftp给sftpgroup 添加cmssftp用户&#xff1b; 使用passwd cmssftp给用户cmssftp进行设置密码(默认为:654321)。具体如下图所示&#xff1a; 2.…

Flarum 安装和使用教程

随着开源社区的日益繁荣&#xff0c;人们对社区品质的要求也越来越高。传统的 BBS 论坛模式已经难以满足现代用户对美观、便捷、互动性的需求。搭建一个现代化的高品质社区&#xff0c;成为许多网站管理者的迫切需求和共同挑战。 今天就给大家安利一款现代化的、优雅的开源论坛…

028、工具_Pipeline

Redis客户端执行一条命令分为如下四个过程: 1)发送命令 2)命令排队 3)命令执行 4)返回结果 其中1)+4)称为Round Trip Time(RTT,往返时间)。 Pipeline(它能将一组Redis命令进 行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端,图3-…