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

python做题日记(9)

第二十一题

        第二十一题是合并两个有序链表,合并后的链表仍然需要保持有序,因为在合并之前已经是两个有序链表,因此在合并时只需要遍历比较两个链表中的下一结点数值,将其中较小的一个结点添加到新的列表中。如果有任何一个链表已经遍历完成,将另一链表的剩余结点直接接到新链表后面,最后返回新链表的头结点。

class Solution:def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:# 创建一个虚拟头结点,方便操作dummy = ListNode()current = dummy# 遍历两个链表,取较小的节点接到新链表后面while list1 and list2:if list1.val < list2.val:current.next = list1list1 = list1.nextelse:current.next = list2list2 = list2.nextcurrent = current.next# 剩余的节点直接接到新链表后面current.next = list1 if list1 else list2return dummy.next

第二十二题

        第二十二题是括号生成问题,给定生成括号的对数,生成所有合理的组合方式。对于括号生成问题,本质上是多层嵌套的组合问题,每一步都要作出选择,并且每一步的选择都会影响后续的选择。在这里选择采用递归的方法解决这个问题,因为整个过曾像一棵决策树,递归可以自动遍历所有分支。每一层递归代表当前已经放了多少个括号,下一层递归就是在这个基础上再放一个括号。递归的终止条件是左右括号都已经用完。排列括号的条件是:如果还有左括号可以用,就可以放左括号,如果右括号剩余数量大于左括号时,才能放右括号。因此形成如下代码:

class Solution:def generateParenthesis(self, n: int) -> list[str]:res = []def backtrack(path: str, left: int, right: int):# 终止条件:左右括号都用完if left == 0 and right == 0:res.append(path)return# 只要还有左括号可以用,就可以放左括号if left > 0:backtrack(path + '(', left - 1, right)# 右括号剩余数量大于左括号时,才能放右括号if right > left:backtrack(path + ')', left, right - 1)backtrack('', n, n)return res

http://www.lryc.cn/news/2386762.html

相关文章:

  • Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
  • 【C++进阶篇】初识哈希
  • Spring Boot——自动配置
  • 免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率
  • 使用 Vuex 实现用户注册与登录功能
  • 进程通信(管道,共享内存实现)
  • 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测
  • 快速上手SHELL脚本常用命令
  • 【无标题】前端如何实现分页?
  • 【自然语言处理与大模型】大模型Agent四大的组件
  • 小巧高效的目录索引生成软件
  • 云原生架构设计相关原则
  • android实现使用RecyclerView详细
  • 华为云Flexus+DeepSeek征文 | Flexus X实例助力 Dify-LLM 一键部署:性能跃升与成本优化的革新实践
  • 曼昆经济学原理第九版目录
  • 数据库blog7_MySql的下载与配置准备
  • YOLOv11助力地铁机场安检!!!一键识别刀具
  • RFID工业读写器的场景化应用选型指南
  • java中的线程安全的集合
  • 单片机如何快速实现查看实时数据
  • go实现钉钉三方登录
  • YOLOv1 详解:单阶段目标检测算法的里程碑
  • 5G 核心网切换机制全解析:XN、N2 与移动性注册对比
  • 物流配送优化实战:用遗传算法破解选址难题
  • Linux 个人用户设置账号密码环境变量,四种方式
  • Three.js搭建小米SU7三维汽车实战(5)su7登场
  • 关于 SSE(Server-Sent Events)过程的简要解剖
  • 格恩朗管段超声波流量计:流量测量先锋
  • 重构开发范式!飞算JavaAI革新Spring Cloud分布式系统开发
  • 图论 判断是否有环