news 2026/4/16 12:43:35

0x3f 第23天 黑马web (前端三件套,maven,web入门、mysql)黑马反射注解 hot100普通数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
0x3f 第23天 黑马web (前端三件套,maven,web入门、mysql)黑马反射注解 hot100普通数组

反射、注解、前端三件套、maven、web入门、mysql

1.缺失的第一个正数

核心思路,每个学生按学号坐好位置,肯定有一个人的位置是错的

最后检查一遍,谁的位置上做错了人,那个位置的数就是缺失的第一个正数

如果所有人位置都是对的,那就是n+1是缺失的m3?

影分身法:

判断每个人的位置和学号的方法就是if i == nums[i]-1

(-1是因为i是从0开始 nums[0]在i=0位置)

但是如果有两个nums[i]相等,比如1,1,2,那么会导致逻辑崩盘

因此我们引入了影分身法

具体就是将判断位置改成:if nums[i] == nums[nums[i]-1]

条件能否防死循环核心问题
i == nums[i]-1不能重复数字时会无限交换(死循环)
nums[i] == nums[nums[i]-1]重复数字时直接退出循环

综上:学号为nums[i]的人,应该坐在i+1的位置上

时间复杂度 n 空间复杂度1 因为是在原数组上修改

class Solution: def firstMissingPositive(self, nums: List[int]) -> int: n = len(nums) for i in range(n): while 1<=nums[i]<=n and nums[i] != nums[nums[i]-1]: #只处理学号合规的同学,并处理位置坐错的同学 j = nums[i]-1 #j是学号为nums[i]-1同学该坐的位置 nums[i],nums[j] = nums[j],nums[i] for i in range(len(nums)): if nums[i]!=i+1: return i+1 return n+1

2.矩阵置零

考虑把数据保存到 matrix 的第一行和第一列中。类似 Excel 表格的第一行和第一列,保存汇总信息。

核心思路:1.拿出两个布尔值:记录第一行,第一列是否有0

后续都是先处理1行1列之外的

2.拿第一行和第一列作为flag数组,出现0,就把对应的第一行和第一列置0

3.再遍历一遍,只要这行或这列出现0,元素全部变0

4.最后慢慢处理第一行第一列

first_row_has_zero、 first_col_has_zero

class Solution: def setZeroes(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place instead. """ m,n = len(matrix),len(matrix[0]) first_row_has_zero = 0 in matrix[0] first_col_has_zero = any(row[0]==0 for row in matrix) for i in range(1,m): for j in range(1,n): if matrix[i][j]==0: matrix[i][0] = 0 matrix[0][j] = 0 for i in range(1,m): for j in range(1,n): if matrix[i][0] == 0 or matrix[0][j] == 0: matrix[i][j]=0 if first_col_has_zero: for row in matrix: row[0] = 0 if first_row_has_zero: for j in range (n): matrix[0][j] = 0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 17:33:59

数据建模在大数据领域的数据可视化设计原则

数据建模在大数据领域的数据可视化设计原则 关键词:数据建模、大数据、数据可视化、设计原则、信息架构、交互设计、数据故事 摘要:本文深入探讨了在大数据环境下,如何通过科学的数据建模为数据可视化奠定坚实基础。我们将从数据建模的核心概念出发,逐步分析其与可视化设计…

作者头像 李华
网站建设 2026/4/16 7:34:06

ncmdumpGUI:网易云音乐NCM格式快速解密终极指南

ncmdumpGUI&#xff1a;网易云音乐NCM格式快速解密终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款专业的C#桌面应用程序&#xff0c…

作者头像 李华
网站建设 2026/4/16 3:43:52

ms-swift支持多模态数据动态采样策略提升训练稳定性

ms-swift支持多模态数据动态采样策略提升训练稳定性 在当前大模型加速向通用人工智能演进的背景下&#xff0c;多模态能力已成为衡量模型智能水平的关键标尺。然而&#xff0c;现实中的训练场景远非理想&#xff1a;文本数据动辄上亿条&#xff0c;而高质量图文对或视频问答样…

作者头像 李华
网站建设 2026/4/16 11:07:43

FastReport自定义字体配置实战指南:三步解决报表美化难题

FastReport自定义字体配置实战指南&#xff1a;三步解决报表美化难题 【免费下载链接】FastReport Free Open Source Reporting tool for .NET6/.NET Core/.NET Framework that helps your application generate document-like reports 项目地址: https://gitcode.com/gh_mir…

作者头像 李华
网站建设 2026/4/15 18:03:15

KLayout版图设计工具终极指南:从入门到精通深度解析

KLayout版图设计工具终极指南&#xff1a;从入门到精通深度解析 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 你是否曾经为了寻找一款既专业又免费的集成电路版图设计工具而苦恼&#xff1f;想知道如何快速掌握…

作者头像 李华
网站建设 2026/4/16 9:03:04

通过ChromeDriver下载地址获取自动化测试浏览器驱动

通过ChromeDriver下载地址获取自动化测试浏览器驱动 在现代 Web 应用的持续交付流程中&#xff0c;一个看似微不足道却频繁绊倒工程师的问题是&#xff1a;“Selenium 启动失败——ChromeDriver 版本不匹配”。你写好了完美的测试脚本&#xff0c;在本地运行正常&#xff0c;但…

作者头像 李华