算法 缺失的第一个正整数-(哈希)

news/2025/3/14 18:16:59/

牛客网: BM53

题目: 无重复元素数组中未出现的最小的正整数

思路:

(1) 使用单独hash表记录每个元素出现的次数,从1开始递增查询出现次数直到次数为0停止返回

(2) 将原数组作为hash表使用,处理好负数与0,将绝对值在N范围内的每个元素的绝对值减1定位到数组相关的下标将值置反(因为每个元素可能已被其他元素置为负数,所以需要取绝对值),遍历数组值为正数对应的下标加1即为缺失的正整数(由无重复元素保证)。

代码:

(1) 新建hash表

// go 哈希package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型
*/
func minNumberDisappeared( nums []int ) int {// write code heredict := make(map[int]int)for _, num := range(nums) {dict[num]++}x := 1for dict[x] > 0 {x++}return x
}

(2) 使用原数组作为hash表

// gopackage main
// import "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型
*/
func abs(x int) int {if x >= 0 {return x} else {return -x}
}func minNumberDisappeared( nums []int ) int {// write code heren := len(nums)if n < 3 {return 0}// 处理所有负数for i := 0; i < n; i++ {if nums[i] <= 0 {nums[i] = n + 1}}// 使用坐标为key, 存储存在的n以内的正整数for i := 0; i < n; i++ {if abs(nums[i]) <= n {nums[abs(nums[i])-1] = -nums[abs(nums[i])-1]}}// 遍历值还为正的下标即为缺失的最小正整数for i := 0; i < n; i++ {if nums[i] > 0 {return i + 1}}return n + 1
}


http://www.ppmy.cn/news/1119618.html

相关文章

UEFI 安装 Debian12 Linux 物理机虚拟机VMware通用

文章目录 前言⭐前置虚拟机物理机 安装流程选择安装方式语言及键盘选择网络选择创建用户系统磁盘分区新旧磁盘分区方式BOOT分区SWAP分区根分区 安装过程中其他选项选择软件包安装流程末 前言⭐ 物理机和虚拟机安装仅有设置UFFI引导的差别、这里前置为设置UEFI引导。安装步骤大…

关于ClickHouse的SQL操作

目录 clickhouse 和 mysql 的比较 5.1 create 5.2 Insert 1.标准 INSERT 2.从表到表的插入 5.3 Update 和 Delete 1.删除操作 2.修改操作 clickhouse 和 mysql 的比较 共同点&#xff1a; 都是关系型数据库&#xff0c;支持SQL查询语言&#xff1b;支持事务处理&#xff…

NSS [HNCTF 2022 Week1]Interesting_http

NSS [HNCTF 2022 Week1]Interesting_http POST&#xff1a;wantflagCookies&#xff1a;useradminX-Forwarded-For:127.0.0.1

c++ QT 十八位时间戳转换

先说一下UTC&#xff1a; 它是协调世界时间&#xff0c;又称世界统一时间、世界标准时间、国际协调时间&#xff0c;简称UTC UTC时间与本地时间关系&#xff1a;UTC 时间差本地时间 如果UTC时间是 2015-05-01 00:00:00 那么北京时间就是 2015-05-01 08:00:00 解释&#xff1a;…

智能热水器丨打造智能家居新体验

随着科学技术的不断发展&#xff0c;智能电器越来越被大众所采纳&#xff0c;如智能扫地机&#xff0c;智能洗衣机&#xff0c;智能微波炉等等&#xff0c;越来越智能的电器为人们的生活带来了许多便利。以往的热水器一般都是只有按键/机械的控制方式&#xff0c;没有其他无线控…

蓝桥杯每日一题2023.9.12

3491. 完全平方数 - AcWing题库 题目描述 分析 完全平方数的一个特点&#xff1a; 所有的质因子的个数为偶数。eg1.9的质因子为3&#xff0c;3的个数为2&#xff0c;得到了9&#xff08;3*39&#xff09; eg2.81的质因子为3&#xff0c;3的个数为4&#xff0c;得到81&#…

JeecgBoot v3.5.5 版本发布,性能大升级版本—开源免费的低代码开发平台

项目介绍 JeecgBoot是一款企业级的低代码平台&#xff01;前后端分离架构 SpringBoot2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue3&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…

基于SpringBoot的在线商城系统设计与实现

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 商品分类管理 商品信息管理 轮播图管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff…