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

LeetCode100-41缺失的第一个正数

本文基于各个大佬的文章

上点关注下点赞,明天一定更灿烂!


前言

        Python基础好像会了又好像没会,所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考,写给自己看的,也欢迎大家在评论区指导~

        您的每一条评论都会让我更有学习的动力。


一、分析题目

二、思路以及代码

困难级别,看着有点害怕啊。

刚开始看题目描述不太了解题意我说实话,看到样例才知道什么意思。不过我脑子里没有弹出任何思路,一团浆糊呢。

这个题目的关键是如何才能找出这个最小的正整数,其实参考示例我们可以知道这个最小正整数一定小于数组的长度。我们可以借助哈希表,当数组是【1,2,3,4,5】的时候索引是【0,1,2,3,4】,索引和值的关系是nums[i]=i+1,我们也可以借助这个想法来解决这个题目,把正确的数值放到正确的索引上。

class Solution:def firstMissingPositive(self, nums: List[int]) -> int:n = len(nums)# 将每个数放到正确位置for i in range(n):# 只处理在[1,n]范围内的数while 1 <= nums[i] <= n and nums[nums[i] - 1] != nums[i]:# 将nums[i]放到正确位置nums[i]-1correct_pos = nums[i] - 1# 交换nums[i]和nums[correct_pos]nums[i], nums[correct_pos] = nums[correct_pos], nums[i]#寻找缺失的最小正整数for i in range(n):if nums[i] != i + 1:return i + 1#如果所有位置都正确,返回n+1return n + 1

三、本题收获

哈希表还是很好用滴


总结

        只会打暴力,基础一团糟,明天再学吧老铁,别真学会了。

http://www.dtcms.com/a/355491.html

相关文章:

  • AI实时故障诊断系统(实时采集信号)
  • MySQL 中 tinyint(1)、int(11)、bigint(20) 的数字到底是什么意思?
  • (笔记)输入法框架协作机制深度分析
  • 内网穿透工具【frp】的核心功能底层处理逻辑解析
  • WINTRUST!_ExplodeMessage的作用是赋值psIndirectData
  • Windows 11 中 PowerShell 与 CMD 的深度对比:从定位到实战
  • 集成 A2A Protocol - BeeAI 框架的智能代理通信解决方案
  • 机器人芯片:驱动智能机器的核心技术引擎
  • 有限与无限的游戏 之感
  • 稳石氢能受邀出席2025势银绿氢产业大会,荣获“2025绿氢技术突破奖”!
  • SAP SD模块用户经常遇到的痛点以及解决方案
  • Circuitjs 测试点的使用
  • HTML+CSS、JavaScript、Vue、Ajax
  • Docker 40个自动化管理脚本-2 (40/40)
  • 【动态规划】子数组、子串问题
  • 国产芯力量!贴片式SD卡搭载北京君正Rk瑞芯微,打造嵌入式存储低延迟+高可靠黄金组合​
  • MongoDB 文档模型设计:JSON 结构的灵活性与陷阱
  • Mac训练大模型:MLX-LM框架LoRA训练Qwen3并集成SwanLab进行可视化
  • 基于mac的智能语音处理与应用开发-环境部署
  • 【LangGraph】核心概念速通:State/Node/Edge、通道、事件与流式输出
  • Java8-21的核心特性以及用法
  • FPGA位宽调整模块
  • 跨语言 UDP 聊天程序实现:Go 客户端与 Python 服务端[超简单 入门级聊天程序 包含完整源码]
  • 线段树 (Segment Tree)
  • 理解AI智能体:智能体记忆
  • day04-kubernetes(k8s)
  • 微动开关-电竞鼠标核心!5000万次寿命微动开关评测
  • windows PowerToys之无界鼠标:一套键鼠控制多台设备
  • 【详细教程】如何将SQLBot的MCP服务集成到n8n
  • Linux_详解线程池