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

算法训练第十七天

654. 最大二叉树

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def constructMaximumBinaryTree(self, nums):""":type nums: List[int]:rtype: Optional[TreeNode]"""if len(nums)==0:return numsroot = TreeNode()root.val = max(nums)if len(nums)==1:return rootidx = nums.index(root.val)root.left = self.find(nums,0,idx-1)root.right = self.find(nums,idx+1,len(nums)-1)return rootdef find(self,nums,left,right):if right-left+1==0:return Nonenode = TreeNode()idx = leftfor i in range(left,right+1):if nums[i]>nums[idx]:idx = inode.val = nums[idx]node.left = self.find(nums,left,idx-1)node.right = self.find(nums,idx+1,right)return node

617.合并二叉树

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def mergeTrees(self, root1, root2):""":type root1: Optional[TreeNode]:type root2: Optional[TreeNode]:rtype: Optional[TreeNode]"""if root1 is None and root2 is None:return Noneif root1 is None and root2 is not None:return root2if root1 is not None and root2 is None:return root1ans = self.find(root1,root2)return ansdef find(self,node1,node2):if node1 is None and node2 is None:return Noneif node1 is None and node2 is not None:return node2if node1 is not None and node2 is None:return node1node = TreeNode()node.val = node1.val+node2.valnode.left = self.find(node1.left,node2.left)node.right = self.find(node1.right,node2.right)return node

700.二叉搜索树中的搜索

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def searchBST(self, root, val):""":type root: Optional[TreeNode]:type val: int:rtype: Optional[TreeNode]"""ans = self.find(root,val)return ansdef find(self,node,val):if node is None:return Noneif node.val==val:return nodeif val < node.val:return self.find(node.left,val)else:return self.find(node.right,val)

98.验证二叉搜索树

代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def isValidBST(self, root):""":type root: Optional[TreeNode]:rtype: bool"""res = []self.find(root,res)for i in range(1,len(res)):if res[i]<=res[i-1]:return Falsereturn Truedef find(self,node,res):if node:self.find(node.left,res)res.append(node.val)self.find(node.right,res)
http://www.xdnf.cn/news/1042939.html

相关文章:

  • CQF预备知识:Python相关库 -- 通用非均匀随机数抽样 scipy.stats
  • 关于allegro 导入网表报错:Unable to find pin name in问题的解决
  • Java大模型开发入门 (9/15):连接外部世界(中) - 向量嵌入与向量数据库
  • JS进阶 Day03
  • 【构建】Meson、Bazel、Buck现代构建系统
  • RPG28.使用GameplayCue和制作死亡效果
  • Java线程安全计数器实现方案
  • 【stm32f4】ADC实验(stm32hal库)
  • 什么是旋转开关?
  • 使用NVIDIA TensorRT for RTX运行高性能AI应用程序
  • C++线性DP-最优解问题、方案数问题
  • PCL 计算点云的投影密度
  • 【整数递增加法拆分】2022-4-11
  • LangGraph基础知识(Human-in-the-loop)(五)
  • 《甘肃棒垒球》奥运会项目有哪些·垒球1号位
  • vue | async-validator 表单验证库 第三方库安装与使用
  • 高效I/O处理:模型与多路复用的探讨
  • Spring学习笔记
  • (14)python+ selenium自动化测试 -回顾
  • 探索数据的力量:Elasticsearch中指定链表字段的统计查询记录
  • 生日悖论理论及在哈希函数碰撞中的应用
  • AI视野:写作应用AI排行榜Top10 | 2025年05月
  • 隐式时钟与外时钟对比2025.6.14
  • boost之signal的封装及使用例子
  • 数列求和计算
  • XCTF-misc-János-the-Ripper
  • C++斯特林数在C++中的数学理论与计算实现1
  • 飞牛NAS本地化部署Dify打造私有LLMOps平台
  • CARSIM-制动压力与制动踏板行程关系
  • acm模式stringstream