[LeetCode] 41. 缺失的第一个正数(Java)

[LeetCode] 41. 缺失的第一个正数(Java)

1.题目描述

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。

请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:输入:nums = [1,2,0]
输出:3
示例 2:输入:nums = [3,4,-1,1]
输出:2
示例 3:输入:nums = [7,8,9,11,12]
输出:1

2.解题思路

对于一个长度为 N 的数组,其中没有出现的最小正整数只能在 [1, N+1]中。这是因为如果 [1, N] 都出现了,那么答案是 N+1,否则答案是 [1, N] 中没有出现的最小正整数。这样一来,我们将所有在 [1, N]范围内的数放入哈希表,也可以得到最终的答案。(官解)

3.解法

解法一 原地哈希

class Solution {public int firstMissingPositive(int[] nums) {int len = nums.length;for (int i = 0; i < len; i++){// 把所有小于等于0得元素设为len + 1if (nums[i] <= 0) nums[i] = len + 1;}for (int i = 0; i < len; i++){// 记录该元素索引,如果索引在[0, n]之间,标记索引处的元素为负数int index = Math.abs(nums[i]) - 1;if (index <= len -1){nums[index] = -Math.abs(nums[index]);}}for (int i = 0; i < len; i++){if (nums[i] > 0){return i + 1;}}return len + 1;}
}

4.技能点

原地哈希

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

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

相关文章

基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

[LeetCode] 274. H 指数(Java)

[LeetCode] 274. H 指数(Java) 1.题目描述 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数”&#xff0c;一名科研人员的 h指…

layui下拉框的高度_LAYUI select 下拉框得高度

UITextFieldUITextFieldDemo 效果 特点 1.有效定制键盘的样式 2.处理键盘对文本框的遮挡 用法 1.导入文件(UITextFieldCreateInputAccessoryView.h/.m) ...&lbrack;地图SkyLine二次开发&rsqb;关于IE内存限制问题&lpar;1G&rpar;相信很多人也遇到过同样的问题,地…

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

[LeetCode] 453. 最小操作次数使数组元素相等(Java)

[LeetCode] 453. 最小操作次数使数组元素相等(Java) 1.题目描述 给你一个长度为 n 的整数数组&#xff0c;每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。 示例 1&#xff1a;输入&#xff1a;nums [1,2,3] 输出&#xff1a;3 解释&#xff…

python打log_python根据文件大小打log日志

本文实例讲述了python根据文件大小打log日志的方法&#xff0c;分享给大家供大家参考。具体方法如下&#xff1a;import globimport loggingimport logging.handlerslog_filenamelogging_rotatingfile_example.out# set up a specific logger with our desired output levelmy_…

基于Java swing ATM简单的银行管理系统

项目介绍&#xff1a; 本项目是使用Java swing开发&#xff0c;可实现ATM系统/银行系统的基本登陆、转账、查询余额、存取款业务。界面设计比较简介 项目结构&#xff1a; 运行截图&#xff1a; 相关系统设计实现推荐&#xff1a; 基于java springbootmybatis电影售票网站管…

[LeetCode] 665. 非递减数列(Java)

[LeetCode] 665. 非递减数列(Java) 1.题目描述 给你一个长度为 n 的整数数组 nums &#xff0c;请你判断在 最多 改变 1 个元素的情况下&#xff0c;该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的&#xff1a; 对于数组中任意的 i (0 < i < n-2)&am…

林辉高考机器人_机器人2019年参加高考 力争考上一本

机器人2019年参加高考力争考上一本2019年的文科高考生&#xff0c;即将迎来一位特殊的竞争对手——高考机器人。该款机器人包括三个独立的人工智能程序&#xff0c;分别应考数学、语文和文综。研发团队立下目标&#xff0c;将在全封闭环境中、有监考老师和公证员的情况下&#…

基于javaweb(springboot+mybatis)网站建设服务管理系统设计和实现以及文档报告设计

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 文末获取源码联系方式 &#x1f4dd; 主要技…

[LeetCode]283. 移动零(Java)

[LeetCode]283. 移动零(Java) 1.题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1:输入: nums [0,1,0,3,12] 输出: [1,3…

电脑怎么重置host_电脑又双叒叕卡顿?究竟要“重装”还是“重置”?原来这区别大了...

"啊!!!"随着一声惨叫&#xff0c;名侦探韩博士决定去一探究竟&#xff01;原来是一小伙伴们的电脑又双叒叕卡顿了&#xff0c;连文件都来不及保存电脑就直接"歇菜"了。作为21世界最佳优秀青年代表&#xff0c;望着这一脸生无可恋的小伙伴&#xff0c;韩博士…

[LeetCode] 118. 杨辉三角(Java)

[LeetCode] 118. 杨辉三角(Java) 1.题目描述 给定一个非负整数 *numRows&#xff0c;*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1:输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例…

基于javaweb(springboot+mybatis)宠物医院预约管理系统设计和实现以及论文报告

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345;文末获取源码联系方式 &#x1f4dd; 项目…

python 变量类型list_Python基础变量类型——List浅析-阿里云开发者社区

Python使用list一、listPython内置的一种数据类型是列表&#xff1a;list。list是一种有序的集合&#xff0c;可以随时添加和删除其中的元素。比如&#xff0c;列出班里所有同学的名字&#xff0c;就可以用一个list表示&#xff1a;classmates [Michael, Bob, Tracy]print(cla…

Frp内网穿透保姆级教程 windows内网穿透

Frp内网穿透保姆级教程 windows内网穿透 准备工作 一台具有公网ip的云服务器(我的是ubuntu)frp程序 流程 将frps放到具有公网ip的服务器上将frpc放到需要内网穿透机器上&#xff0c;这里演示的是windows主机配置文件,然后启动 步骤 登陆服务器 ssh ubuntuip 在服务端下载…

基于javaweb(springboot+mybatis)网上家具商城项目设计和实现以及文档报告

具体功能模块&#xff1a; (1) 用户注册和登录登录功能&#xff1a; ①用户的注册功能 : 访问网站的人根据网站的提示注册自己的账户 ②用户的登录功能 : 用户可以输入用户名和密码进行登录操作&#xff0c;当没有该账户的时 候&#xff0c;提示错误&#xff0c;用户必须通过…

meta标签是什么

meta标签是什么 meta即元数据(matadata)meta是HTML语言head区的一个辅助性标签,位于html文档头部的head标签和title标签,不包含任何内容.meta共有两个属性,http-equiv和name属性 meta标签的作用 针对搜索引擎和更新频度的描述 关键词 文件的最后修改时间 作者 以及其他元数据…

Java SSM (springboot+mybatis)美食菜谱分享平台系统设计和实现以及论文报告

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &#x1f345;文末获取源码联系&#x1f345; 临近学期结束&#xff…

两次结果的绝对差值_你知道电子天平的检定和检定结果的影响因素有哪些吗?...

插播个小故事&#xff1a;某天一位朋友的用户对朋友说要买一台天平&#xff0c;制定的URS太“猖狂”没有能满足的天平&#xff0c;朋友硬着头皮报了一个型号&#xff0c;鞋子和脚不匹配&#xff0c;穿鞋的果然来找卖鞋子的&#xff1a;用户要买量程1100g&#xff0c;百分之一的…