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

上海做网络推广企业网站优化方案

上海做网络推广,企业网站优化方案,网络营销推广服务商,网络 网站Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面…Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面试经典150题刷题记录 —— 区间篇Leetcod面试经典150题刷题记录——栈篇Leetcod面试经典150题刷题记录——链表篇Leetcod面试经典150题刷题记录——二叉树篇Leetcod面试经典150题刷题记录——二叉树层次遍历篇Leetcod面试经典150题刷题记录——二叉搜索树篇 Leetcod面试经典150题刷题记录 —— 二叉搜索树篇 二叉搜索树性质1. 二叉搜索树的最小绝对差脏乱差版本优雅版本 2. 二叉搜索树中第K小的元素3. 验证二叉搜索树经典错误(从局部性质推断全局性质)利用第1题的代码(有pre指针的那段) 遇到二叉搜索树(BST)的题目一旦用了sort()直接挂掉面试切记 二叉搜索树性质 二叉搜索树的性质满足 (1)左节点 root 右节点 (局部性质) (2)左子树所有节点 root 右子树所有节点 (全局性质该性质包括局部性质所以更重要) 相当部分程序员写起上面的局部性质很容易写全局性质的判断就容易犯病不瞒你说我也是。 1. 二叉搜索树的最小绝对差 题目链接二叉搜索树的最小绝对差 - leetcode 题目描述 给你一个二叉搜索树的根节点 root 返回 树中任意两不同节点值之间的最小差值 。差值是一个正数其数值等于两值之差的绝对值。 题目归纳 解题思路 解法 验证二叉搜索树 - leetcode官方题解 脏乱差版本 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right# 返回二叉搜索树中任意两个不同节点值之间的最小差值 # 性质 # (1)二叉搜索树。题目既然说了那么肯定要用到该性质 # (2)任意两个不同节点值强调了任意两个不同节点。但是既然是二叉搜索树了拿右子树中的节点 - 左子树中的节点肯定不会是答案所以这里的任意其实是带引号的任意不是绝对的任意是可以忽略一些情况的任意# 以root节点为例要查找的目标点一定是下面两种情况 # (1)左树的最右节点 左树的最大节点 中序遍历的前驱pre节点 # (2)右树的最左节点 右树的最大节点 中序遍历的后继post节点 # 最后递归搜索 class Solution:def getMinDistance(self, root: Optional[TreeNode]) - int:if not root: return 0# (1)查找左树的最右节点 左树的最大节点LR root.leftwhile LR and (LR.left or LR.right):# 有右边找右边没右边找左边再找右边if LR.right:LR LR.rightelse:break# (2)查找右树的最左节点 右树的最大节点RL root.rightwhile RL and (RL.left or RL.right):if RL.left:RL RL.leftelse:breakleft_result 1e9if LR: left_result abs(root.val-LR.val)right_result 1e9if RL: right_result abs(root.val-RL.val)return min(left_result, right_result)def getMinimumDifference(self, root: Optional[TreeNode]) - int:result 1e9# 逐个遍历queue deque([root])while queue:size len(queue)for i in range(size):node queue.popleft() if node.left: queue.append(node.left)if node.right: queue.append(node.right)dis self.getMinDistance(node)result min(result, dis)return result优雅版本 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def __init__(self):self.result float(inf)self.pre Nonedef traversal(self, cur):if cur is None:return Noneself.traversal(cur.left) # 左if self.pre: # 中self.result min(self.result, cur.val - self.pre.val)self.pre cur # 记录前一个self.traversal(cur.right) # 右def getMinimumDifference(self, root):self.traversal(root)return self.result2. 二叉搜索树中第K小的元素 题目链接二叉搜索树中第K小的元素 - leetcode 题目描述 给定一个二叉搜索树的根节点 root 和一个整数 k 请你设计一个算法查找其中第 k 个最小元素从 1 开始计数。 题目归纳 中序遍历BST成有序数组然后再找到这个有序数组的第k个元素NoNoNo。掌握递归转换成迭代的关键思想即将函数调用栈明写在代码里。 解题思路 解法 二叉搜索树中第K小的元素 - leetcode官方题解 中序遍历的迭代写法注意非递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right# 这道题掌握两个知识点 # (1)中序遍历的迭代写法。即将函数调用栈明示出来因为函数调用栈也是个栈所有的递归写法都是可以转换为迭代版写法的手动模拟函数调用栈即可。 # (2)二叉搜索树的中序遍历是有序的。class Solution:def kthSmallest(self, root: Optional[TreeNode], k: int) - int:# 中序遍历迭代版而非递归stack []while root or stack:# 相当于递归版写法的左子树遍历while root: # 压栈方向是单一的沿着二叉树的右上角-左下角方向压栈stack.append(root)root root.leftroot stack.pop() # 遇到空就出栈# if root: print(root.val)k - 1if k 0:return root.valroot root.right3. 验证二叉搜索树 题目链接验证二叉搜索树 - leetcode 题目描述 给定一个二叉树的 根节点 root想象自己站在它的右侧按照从顶部到底部的顺序返回从右侧所能看到的节点值。 题目归纳 右视图 右边的侧视图 解题思路 解法 验证二叉搜索树 - leetcode官方题解 (1) 从左到右层序遍历。记录层序遍历的最后一个node即为右视图看到的第一个node。 经典错误(从局部性质推断全局性质) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isValidBST(self, root: Optional[TreeNode]) - bool:# 这是一道21年的408考研真题空节点和叶节点都是二叉搜索树# 注意下面的写法是错误的原因在于只判断了局部的性质而忽略了全局的性质if not root: return Trueif not root.left and not root.right: return True# (1)这个时候root肯定存在左树或许存在结合root与左树根节点判断是不是二叉搜索树if root and root.left and root.left.val root.val:return self.isValidBST(root.left)else:return False# (2)这个时候root肯定存在右树或许存在结合root与右树根节点判断是不是二叉搜索树if root and root.right and root.val root.right.val:return self.isValidBST(root.right)else:return False 利用第1题的代码(有pre指针的那段) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def __init__(self):self.pre Nonedef isValidBST(self, root: Optional[TreeNode]) - bool:if not root:return Trueleft self.isValidBST(root.left)if self.pre and self.pre.val root.val: # __比第1题加了这个判断__return Falseself.pre root # 要遍历root.right了这个时候记录pre节点right self.isValidBST(root.right)return left and right # 两边都要是BST树
文章转载自:
http://www.morning.xnkh.cn.gov.cn.xnkh.cn
http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn
http://www.morning.qlpyn.cn.gov.cn.qlpyn.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn
http://www.morning.xcxj.cn.gov.cn.xcxj.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn
http://www.morning.ptmch.com.gov.cn.ptmch.com
http://www.morning.geledi.com.gov.cn.geledi.com
http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn
http://www.morning.yunease.com.gov.cn.yunease.com
http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn
http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn
http://www.morning.nwcgj.cn.gov.cn.nwcgj.cn
http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn
http://www.morning.ybyln.cn.gov.cn.ybyln.cn
http://www.morning.clpdm.cn.gov.cn.clpdm.cn
http://www.morning.rmlz.cn.gov.cn.rmlz.cn
http://www.morning.smnxr.cn.gov.cn.smnxr.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.xclgf.cn.gov.cn.xclgf.cn
http://www.morning.knjj.cn.gov.cn.knjj.cn
http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn
http://www.morning.wspyb.cn.gov.cn.wspyb.cn
http://www.morning.fwjfh.cn.gov.cn.fwjfh.cn
http://www.morning.qgghj.cn.gov.cn.qgghj.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.dfwkn.cn.gov.cn.dfwkn.cn
http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn
http://www.morning.btgxf.cn.gov.cn.btgxf.cn
http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn
http://www.morning.tqpds.cn.gov.cn.tqpds.cn
http://www.morning.yprnp.cn.gov.cn.yprnp.cn
http://www.morning.jgttx.cn.gov.cn.jgttx.cn
http://www.morning.bxbnf.cn.gov.cn.bxbnf.cn
http://www.morning.xkwrb.cn.gov.cn.xkwrb.cn
http://www.morning.bqmhm.cn.gov.cn.bqmhm.cn
http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn
http://www.morning.alwpc.cn.gov.cn.alwpc.cn
http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn
http://www.morning.kztts.cn.gov.cn.kztts.cn
http://www.morning.qsmdd.cn.gov.cn.qsmdd.cn
http://www.morning.lekbiao.com.gov.cn.lekbiao.com
http://www.morning.fqmcc.cn.gov.cn.fqmcc.cn
http://www.morning.ykmtz.cn.gov.cn.ykmtz.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn
http://www.morning.bpwdc.cn.gov.cn.bpwdc.cn
http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn
http://www.morning.lveyue.com.gov.cn.lveyue.com
http://www.morning.kpgbz.cn.gov.cn.kpgbz.cn
http://www.morning.qfqld.cn.gov.cn.qfqld.cn
http://www.morning.xhlht.cn.gov.cn.xhlht.cn
http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn
http://www.morning.mswkd.cn.gov.cn.mswkd.cn
http://www.morning.yaqi6.com.gov.cn.yaqi6.com
http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn
http://www.morning.pymff.cn.gov.cn.pymff.cn
http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn
http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn
http://www.morning.spsqr.cn.gov.cn.spsqr.cn
http://www.morning.tllhz.cn.gov.cn.tllhz.cn
http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn
http://www.morning.mqghs.cn.gov.cn.mqghs.cn
http://www.morning.c7617.cn.gov.cn.c7617.cn
http://www.morning.jycr.cn.gov.cn.jycr.cn
http://www.morning.twwts.com.gov.cn.twwts.com
http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn
http://www.morning.dwmmf.cn.gov.cn.dwmmf.cn
http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn
http://www.morning.sxfmg.cn.gov.cn.sxfmg.cn
http://www.morning.kxltf.cn.gov.cn.kxltf.cn
http://www.morning.hsflq.cn.gov.cn.hsflq.cn
http://www.morning.gwtgt.cn.gov.cn.gwtgt.cn
http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.mjats.com.gov.cn.mjats.com
http://www.morning.xfncq.cn.gov.cn.xfncq.cn
http://www.morning.srgnd.cn.gov.cn.srgnd.cn
http://www.tj-hxxt.cn/news/252213.html

相关文章:

  • 网站备案需要几天自己做的视频网站如何赚钱
  • 高能建站哈尔滨雕塑制作厂家
  • 互联网网站建设价格宁波网页设计多少钱
  • 如何用网站做推广100种广告设计
  • 安徽津城建设工程有限公司网站抖音代运营是啥
  • 河南做网站多少钱上海建筑设计研究院
  • 网站诊断分析案例手机网站 禁止缩放
  • 怎么做浏览器网站微信网站开发需要什么知识
  • 网站开发设计实训总结网站做快照怎么做
  • 四川网站建设服务凡科互动平台
  • 建设优秀企业网站微门户网站建设
  • wordpress前端登录按钮网站建设seoppt
  • 北京互联网网站建设东莞网站推广优化网上推广公司
  • 四川省建设厅网站打不开wordpress永久链接
  • 做视频网站的条件做王境泽gif的网站
  • 网站 keywords企业网站的建设 摘要
  • 网站建设及维护保密协议百度网址提交
  • 网站开发技术路线与规范空间网页版
  • 网站开发中使用框架吗熊岳网站怎么做
  • 网页制作网站制作电商的网站设计
  • 外流网站建设网站开发项目项目运营
  • 做积分网站平面设计工资
  • 如何修改网站后台时间免费做团购网站的软件有哪些
  • 网站建设工作总结6wordpress 导航页
  • wap的网站模板下载展示商品的网站怎么做
  • 动效网站怎么做深圳有哪些传媒公司
  • 长安网站建设工作总结福建建设工程信息网官网
  • 网站做优化是什么意思瀑布流网站源码
  • wordpress 文章 定时无锡网站排名优化费用
  • wordpress建设的是模板网站吗wordpress esc html e