news 2026/4/18 5:30:01

Leetcode刷题日记18(171-180)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Leetcode刷题日记18(171-180)

目录

  • 问题1:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题2:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题3:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题4:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:
  • 问题5:
    • 问题链接:
    • 问题描述:
    • 实例:
    • 代码:

问题1:

问题链接:

171. Excel 表列序号

问题描述:

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如: A->1B->2C->3...Z->26AA->27AB->28...

实例:

示例1:输入:columnTitle="A" 输出:1示例2:输入:columnTitle="AB" 输出:28示例3:输入:columnTitle="ZY" 输出:701

代码:

classSolution:deftitleToNumber(self,columnTitle:str)->int:ans=0forcincolumnTitle:ans=ans*26+ord(c)-ord('A')+1returnans

问题2:

问题链接:

172. 阶乘后的零

问题描述:

给定一个整数 n ,返回 n!结果中尾随零的数量。 提示 n!=n*(n-1)*(n-2)*...*3*2*1

实例:

示例1: 输入:n=3输出:0解释:3!=6,不含尾随0示例2: 输入:n=5输出:1解释:5!=120,有一个尾随0示例3: 输入:n=0输出:0

代码:

classSolution:deftrailingZeroes(self,n:int)->int:ans=0whilen:# 循环 k 次后,n 变成了 floor(n/5^k)n//=5ans+=nreturnans

问题3:

问题链接:

173. 二叉搜索树迭代器

问题描述:

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器:BSTIterator(TreeNode root)初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。 booleanhasNext()如果向指针右侧遍历存在数字,则返回 true ;否则返回 false 。 intnext()将指针向右移动,然后返回指针处的数字。 注意,指针初始化为一个不存在于 BST 中的数字,所以对next()的首次调用将返回 BST 中的最小元素。 你可以假设next()调用总是有效的,也就是说,当调用next()时,BST 的中序遍历中至少存在一个下一个数字。

实例:

代码:

# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclassBSTIterator:def__init__(self,root:Optional[TreeNode]):self.node=root#初始化当前的节点为根节点self.st=[]#缓存遍历的节点的栈defnext(self)->int:whileself.node:#中序遍历self.st.append(self.node)self.node=self.node.left self.node=self.st.pop()#栈顶元素为当前要处理的节点val=self.node.val#缓存节点值self.node=self.node.rightreturnvaldefhasNext(self)->bool:returnself.nodeisnotNoneorlen(self.st)>0# 只有当节点和栈同时为空,整个树遍历结束# Your BSTIterator object will be instantiated and called as such:# obj = BSTIterator(root)# param_1 = obj.next()# param_2 = obj.hasNext()

问题4:

问题链接:

174. 地下城游戏

问题描述:

恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至0或以下,他会立即死亡。 有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。 为了尽快解救公主,骑士决定每次只 向右 或 向下 移动一步。 返回确保骑士能够拯救到公主所需的最低初始健康点数。 注意:任何房间都可能对骑士的健康点数造成威胁,也可能增加骑士的健康点数,包括骑士进入的左上角房间以及公主被监禁的右下角房间。

实例:

代码:

classSolution:defcalculateMinimumHP(self,dungeon:List[List[int]])->int:m,n=len(dungeon),len(dungeon[0])dp=[[inf]*(n+1)foriinrange(m+1)]dp[-1][-2]=dp[-2][-1]=1foriinrange(m-1,-1,-1):forjinrange(n-1,-1,-1):dp[i][j]=max(min(dp[i+1][j],dp[i][j+1])-dungeon[i][j],1)returndp[0][0]classSolution:defcalculateMinimumHP(self,dungeon:List[List[int]])->int:m,n=len(dungeon),len(dungeon[0])@cachedefdfs(i,j):ifi>=morj>=n:returninfifi==m-1andj==n-1:returnmax(1-dungeon[m-1][n-1],1)returnmax(min(dfs(i+1,j),dfs(i,j+1))-dungeon[i][j],1)returndfs(0,0)

问题5:

问题链接:

179. 最大数

问题描述:

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

实例:

示例1: 输入:nums=[10,2]输出:"210" 示例2: 输入:nums=[3,30,34,5,9]输出:"9534330"

代码:

classSolution:deflargestNumber(self,nums:List[int])->str:defsort_rule(x,y):a,b=x+y,y+xifa<b:return1elifa>b:return-1else:return0#转化成字符的形式strs=[str(num)fornuminnums]strs.sort(key=cmp_to_key(sort_rule))ifstrs[0]=="0":return"0"return''.join(strs)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:22:07

免费论文降重神器实测:AIGC率直降80%

一份标着“AIGC疑似率42%”的检测报告&#xff0c;比深夜的咖啡更让人清醒。这不是科幻场景&#xff0c;而是2025年毕业论文季许多学生的现实困境。 最新学术界数据显示&#xff0c;超过六成的被抽查论文因AIGC率过高而需返修。当“降重”从对抗重复率扩展到对抗AI生成痕迹时&a…

作者头像 李华
网站建设 2026/4/15 9:13:13

SEO已死?Lovable增长负责人揭秘:你的增长剧本正在失效的真相

SEO已死&#xff1f;Lovable增长负责人揭秘&#xff1a;为什么你的增长剧本正在失效 大家好&#xff0c;我是Franco。 最近在增长圈子里&#xff0c;有一个话题被讨论得热火朝天&#xff1a;传统的SEO&#xff08;搜索引擎优化&#xff09;护城河正在崩塌。 这可不是什么危言耸…

作者头像 李华
网站建设 2026/4/15 20:51:48

LobeChat研究方向建议生成AI

LobeChat&#xff1a;构建可控、可扩展AI对话系统的实践路径 在企业纷纷拥抱大语言模型的今天&#xff0c;一个现实问题摆在面前&#xff1a;如何让强大的LLM真正落地到具体业务中&#xff0c;而不是停留在“能聊几句”的演示阶段&#xff1f;很多团队尝试过直接调用OpenAI API…

作者头像 李华
网站建设 2026/4/18 5:27:28

LobeChat劳动合同条款生成器

LobeChat劳动合同条款生成器 在企业日常运营中&#xff0c;人力资源部门常常面临大量重复性文书工作——尤其是劳动合同的起草。每一份合同都需要确保条款完整、用语规范&#xff0c;并严格符合《劳动合同法》及相关地方政策。传统方式依赖人工撰写或模板套用&#xff0c;不仅效…

作者头像 李华
网站建设 2026/4/12 2:41:43

AI绘画大赛联动:用LobeChat生成创意提示词参赛

AI绘画大赛联动&#xff1a;用LobeChat生成创意提示词参赛 在AI艺术创作的浪潮中&#xff0c;一场无声的变革正在发生。越来越多的设计师、艺术家和开发者发现&#xff0c;真正决定一幅AI生成图像质量的&#xff0c;往往不是模型本身&#xff0c;而是那短短几行“咒语”——提示…

作者头像 李华
网站建设 2026/4/18 5:23:46

LobeChat ISO27001体系建设建议

LobeChat 与 ISO27001&#xff1a;构建可信企业级 AI 聊天系统的实践路径 在当今企业加速智能化转型的背景下&#xff0c;AI 聊天系统已不再是简单的“对话接口”&#xff0c;而是承载知识服务、业务流程甚至核心决策支持的关键平台。随着大语言模型&#xff08;LLM&#xff09…

作者头像 李华