news 2026/8/6 10:28:56

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/8/6 21:19:18

释放GPU潜力:LobeChat在高性能计算环境中的表现

释放GPU潜力&#xff1a;LobeChat在高性能计算环境中的表现 在AI应用日益普及的今天&#xff0c;越来越多企业希望部署私有化的智能助手——既能拥有类ChatGPT的交互体验&#xff0c;又能确保数据不出内网、模型可定制、成本可控。然而&#xff0c;一个流畅的AI聊天系统远不止“…

作者头像 李华
网站建设 2026/8/5 22:15:01

uniapp 小程序 鸿蒙系统中多个input切换、输入框将丢失焦点

如图&#xff0c;鸿蒙中如果页面有多个输入框用户点击输入框的时候&#xff0c;点击后马上就会失去焦点。 鸿蒙多个input切换失去焦点HarmonyOS WebView 内核升级setData diff 策略更激进微信基础库更新 是“鸿蒙 不支持输入态的受控组件反复重绘” 问题 代码 <input v-mode…

作者头像 李华
网站建设 2026/8/5 7:45:32

毕设分享 stm32 wifi远程温控风扇系统

文章目录 0 前言1 主要功能2 系统架构3 核心软件设计3.3.2 初始化3.3.3 温度采集与显示 4 实现效果5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c…

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

python的fastapi+uvicorn的linux离线部署

一.导出依赖清单&#xff0c;将所有的包打到requirement.txt文件中 两种方式 1.整个环境的包都写进去&#xff0c;可能包含很多与项目无关的依赖 pip freeze > requirements.txt 只想记录项目真正用到的包&#xff0c;可以配合虚拟环境或使用 pipreqs 等工具 pip insta…

作者头像 李华
网站建设 2026/8/5 14:10:07

LobeChat与IPFS结合实现去中心化聊天存档

LobeChat与IPFS结合实现去中心化聊天存档 在AI助手日益渗透个人生活与企业流程的今天&#xff0c;我们越来越依赖这些智能系统来记录决策过程、保存创意灵感&#xff0c;甚至留存法律或医疗咨询的沟通痕迹。然而&#xff0c;当这些宝贵的对话被锁在某个中心化服务器中时——一…

作者头像 李华
网站建设 2026/8/5 5:48:40

LobeChat百度收录加速方法

LobeChat百度收录加速方法 在当前AI应用爆发式增长的背景下&#xff0c;越来越多开发者选择部署自己的聊天机器人门户。然而一个普遍被忽视的问题是&#xff1a;即便功能完善、界面美观&#xff0c;如果搜索引擎看不到你的站点&#xff0c;再优秀的产品也难以被用户发现。尤其在…

作者头像 李华