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

做流量网站怎么做电商网站设计

做流量网站怎么做,电商网站设计,房产局官网查询系统,上海网站建设市场分析20 654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 n…

20

654. 最大二叉树

给定一个不重复的整数数组 nums最大二叉树 可以用下面的算法从 nums 递归地构建:

  1. 创建一个根节点,其值为 nums 中的最大值。
  2. 递归地在最大值 左边子数组前缀上 构建左子树。
  3. 递归地在最大值 右边子数组后缀上 构建右子树。

返回 nums 构建的 *最大二叉树*

思路

  1. 递归就行了

注意:

一般递归中,可以不用传数组就不传数组,传索引下标记就行了

这里寻找最大值没有优化,但是应该是可以的

代码实现
# 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 = right
class Solution:def constructMaximumBinaryTree(self, nums: List[int]) -> Optional[TreeNode]:def tranversal(left_index: int, right_index: int) -> TreeNode:#1.寻找构建数组的最大值,以及对应的索引,不变量,左闭右开#2.递归#3.终止条件if left_index == right_index:returnmax_value = -float('inf')max_index = left_indexfor i in range(left_index, right_index):if nums[i] > max_value:max_value = nums[i]max_index = i node = TreeNode(max_value)# print(left_index, right_index, max_index, max_value)node.left = tranversal(left_index, max_index)node.right = tranversal(max_index + 1, right_index)return nodereturn tranversal(0, len(nums))

还有单调栈的实现,后续可以看下

617. 合并二叉树

给你两棵二叉树: root1root2

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

经典递归咯

代码实现
class Solution:def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:if not root1 and not root2:returnif not root1:return root2if not root2:return root1new_root = TreeNode(root1.val + root2.val)new_root.left = self.mergeTrees(root1.left, root2.left)new_root.right = self.mergeTrees(root1.right, root2.right)return new_root

700. 二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点 root 和一个整数值 val

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null

代码实现

递归

#         self.right = right
class Solution:def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:#明确二叉搜索树的定义,左小右大, 中序遍历为升序排列if not root or root.val == val:return rootif val > root.val:return self.searchBST(root.right, val)if val < root.val:return self.searchBST(root.left, val)

迭代

# 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 = right
class Solution:def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:# #明确二叉搜索树的定义,左小右大, 中序遍历为升序排列# if not root or root.val == val:#     return root# if val > root.val:#     return self.searchBST(root.right, val)# if val < root.val:#     return self.searchBST(root.left, val)# 中序遍历# if not root:return# stack = []# while stack or root:#     while root:#         stack.append(root)#         root = root.left#     root = stack.pop()#     if root.val == val:#         return root #     root = root.right# return rootwhile root:if root.val > val:root = root.leftelif root.val < val:root = root.rightelse:return rootreturn 

98. 验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左

    子树

    只包含

    小于

    当前节点的数。

  • 节点的右子树只包含 大于 当前节点的数。

  • 所有左子树和右子树自身必须也是二叉搜索树。

思路:

遇到二叉搜索树,一定要考虑到中序遍历

# 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 = right
class Solution:max_value = -float('inf')def isValidBST(self, root: Optional[TreeNode]) -> bool:#中序遍历,维护一个最大值的变量,遍历的时候判断,root.val和max_value的da'xiaoif not root:return Trueleft = self.isValidBST(root.left)if not left or root.val <= self.max_value:return Falseself.max_value = root.valright = self.isValidBST(root.right)return right
http://www.yidumall.com/news/31780.html

相关文章:

  • 微网站建设报价方案模板宣传网站怎么做
  • 网站书店架构书怎么做网络营销策略分析
  • 家庭宽带做网站服务器广州seo公司排名
  • 阿里云快速备份网站网络工程师培训一般多少钱
  • 检察院门户网站建设seo优化工作内容做什么
  • 温州网站建设推广服务网站流量排名
  • 崇明专业网站建设高质量外链购买
  • 网站营销优化方案购物网站如何推广
  • 简单网站制作成品网址申请注册
  • 筹划建设智慧海洋门户网站网址最新连接查询
  • 培训班在哪个网站找网络营销做得好的产品
  • 专业网站建设公司地址用广州seo推广获精准访问量
  • 信阳企业网站开发参考网是合法网站吗?
  • 文学网站开发设计报告域名查询ip网站
  • 睢宁网站建设国外电商平台有哪些
  • 住房和城乡建设部网站职责优化疫情防控措施
  • 常熟做网站公司网站页面优化包括
  • 帝国文章网站模板通过qq群可以进行友情链接交换
  • 交三百能在网站上找兼职做的最好的网络推广方式
  • 网站开发安装win10家庭版产品推广网站哪个好
  • wordpress历史版本下载地址济南seo
  • 网站如何做熊掌号并绑定开封seo公司
  • 怎样创建一个网址seo策略是什么意思
  • 网站制作简单模版百度网页入口
  • 建设工程有限公司企业网站wordpress建站公司
  • phpcms企业网站模板网站建设报价
  • 做区位分析的网站色盲测试图免费测试
  • 客户评价 网站申请网址怎么申请的
  • 有没有什么设计排版类网站百度竞价排名的利与弊
  • 小程序开发seo研究中心怎么了