news 2026/6/10 22:20:23

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/6/10 14:53:06

Java_类的加载

基本说明:反射机制是java实现动态语言的关键,也就是通过反射实现类动态加载1.静态加载:编译时加载相关的类,如果没有则报错,依赖性太强2.动态加载:运行时加载需要的类,如果运行时不用该类,即使不存在该类,也不会报错,降低了依赖性类加载时机:1.当创建对象时(new)2.当子类被加载…

作者头像 李华
网站建设 2026/6/9 17:29:44

LobeChat生成PPT大纲效率提升三倍的秘密

LobeChat生成PPT大纲效率提升三倍的秘密 在企业日常办公中&#xff0c;一份结构清晰、逻辑严谨的PPT往往意味着数小时甚至更久的资料整理与内容重构。尤其是面对项目汇报、产品发布或战略复盘这类高要求场景时&#xff0c;不仅要整合多份文档&#xff0c;还需确保表达方式符合专…

作者头像 李华
网站建设 2026/6/10 14:52:06

LobeChat调用Function Calling的完整示例

LobeChat 调用 Function Calling 的完整实践 在构建现代 AI 应用的今天&#xff0c;一个核心挑战是&#xff1a;如何让大语言模型不只是“能说”&#xff0c;还能“会做”&#xff1f;用户不再满足于听到一段漂亮的回答&#xff0c;而是期待系统能真正完成任务——比如查天气、…

作者头像 李华
网站建设 2026/6/10 10:49:34

4、创建交互式脚本

创建交互式脚本 1. 使用带选项的 echo 命令 echo 命令非常实用,在很多脚本中都会用到。运行 echo 命令时,默认使用内置命令,除非指定文件的完整路径,可通过以下命令测试: $ which echo若想获取内置命令的帮助,可使用 man bash 并搜索 echo,但 echo 命令与内部命令…

作者头像 李华
网站建设 2026/6/9 23:12:16

6、深入探索脚本编程:条件语句与代码片段的高效运用

深入探索脚本编程:条件语句与代码片段的高效运用 在脚本编程的世界里,条件语句和代码片段是提升效率和增强脚本功能的关键要素。下面将详细介绍条件语句的使用方法以及如何创建和利用代码片段来简化脚本编写过程。 1. 条件语句的运用 1.1 文件和目录检查 在脚本中,我们常…

作者头像 李华