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

微信开发 微网站开发的详细流程做交通事故的网站

微信开发 微网站开发的详细流程,做交通事故的网站,wordpress 我爱搜罗网,网页制作的工作岗位文章目录 摘要描述举个例子#xff1a; 题解答案题解代码分析#xff08;Swift#xff09;示例测试及结果输出结果#xff1a; 时间复杂度分析空间复杂度分析总结 摘要 这篇文章会带你用 Swift 编写一个算法#xff0c;找出一棵二叉树中最长的「连续递增路径」。不是数组… 文章目录 摘要描述举个例子 题解答案题解代码分析Swift示例测试及结果输出结果 时间复杂度分析空间复杂度分析总结 摘要 这篇文章会带你用 Swift 编写一个算法找出一棵二叉树中最长的「连续递增路径」。不是数组那种连续而是沿着父节点到子节点只要数值刚好加一就算连续。我们不仅会实现解法还会讲清楚怎么递归、怎么处理状态和边界问题。附带 Demo写完就能跑 描述 题目大致意思是这样的 给你一棵二叉树让你找出最长的一条路径这条路径需要满足每个节点的值比前一个节点的值正好大 1比如 1→2→3。路径必须是从父节点一路走到子节点的不能反着走也不能绕道。 举个例子 1\3/ \2 4\5在这棵树里最长的连续路径是 3→4→5所以结果是 3。 题解答案 这个题我们可以用递归来做从每个节点出发去判断它的左右子树是不是能延续这个连续性。如果能我们就更新当前的计数。如果不能就从当前节点重新计数。 我们可以用一个全局变量 maxLength 来存储当前找到的最大连续路径长度。 题解代码分析Swift class TreeNode {var val: Intvar left: TreeNode?var right: TreeNode?init(_ val: Int) {self.val valself.left nilself.right nil} }class Solution {private var maxLength 0func longestConsecutive(_ root: TreeNode?) - Int {guard let root root else { return 0 }dfs(root, nil, 0)return maxLength}private func dfs(_ node: TreeNode?, _ parent: TreeNode?, _ length: Int) {guard let node node else { return }let currLength (parent ! nil node.val parent!.val 1) ? length 1 : 1maxLength max(maxLength, currLength)dfs(node.left, node, currLength)dfs(node.right, node, currLength)} }示例测试及结果 我们来写一个 Demo跑起来试试看。 func buildTree() - TreeNode {let root TreeNode(1)root.right TreeNode(3)root.right?.left TreeNode(2)root.right?.right TreeNode(4)root.right?.right?.right TreeNode(5)return root }let root buildTree() let solution Solution() let result solution.longestConsecutive(root) print(最长连续序列长度是\(result)) // 输出3输出结果 最长连续序列长度是3这个结果就是从 3→4→5 这段路径来的正好是连续递增长度是 3。 时间复杂度分析 每个节点只会被访问一次所以整体是 O(n)其中 n 是节点的总数。在每次递归里我们只是简单做了加法、判断大小这些操作没有多余的遍历。 空间复杂度分析 除了递归调用栈外我们只用了一个变量 maxLength。所以空间复杂度是 O(h)h 是树的高度最坏情况是 O(n)。 总结 这个题目其实是考你怎么在递归中「记住上一层的状态」再在下一层做对比。只要你理解了“当前值是否比上一个值大 1”这个判断逻辑整套算法就水到渠成了。 这类题在实际开发中挺有意思比如 判断某些数据是否形成稳定增长序列日志中查找连续变化事件游戏场景里记录连续操作行为
http://www.hkea.cn/news/14340669/

相关文章:

  • 网站支付开发上海app开发外包
  • wordpress 伪静态 文章打不开网站权重值在较长时间内是一定的页面优化
  • 网站设计背景图片怎么做的网站内怎么做链接
  • 晋江网站建设报价我想做个网站怎么做 找谁做好
  • 重庆住房城乡建设厅官方网站为企业规划网站注意什么
  • 网站开发运作烟台汽车网站建设
  • 站长统计免费下载手表官网
  • 私人做网站建设建设网站及后期维护费用是多少
  • 网站备案人授权学会网站建设能成为一项职业吗
  • 大连网站建设介绍外贸网站建设公司方案
  • 关于小说网站的一些建设流程微信小程序项目源码
  • 免费网站为何收录比较慢网站 成品下载
  • 网站网址查询 优帮云ui设计收费标准
  • 网站开发专业实习报告网站设计与制作简单吗
  • 创意网站建设排行榜wordpress环境部署
  • 用html建设网站郑州企业网站制作怎么做
  • 有哪些做PPT背景网站网站标题的选择
  • 公司网站建设的范文wordpress eshop 教程
  • 无法连接网站给公众号做头像的网站
  • 湖州做网站推广的公司国内十大mcn公司
  • 珠海网站建设珠海易推网对百度网站进行分析
  • 鲜花商城网站建设平台推广费用
  • 视频音乐网站怎样建设宣传链接用什么软件
  • wordpress+下载售卖描述优化方法
  • 可以做多边形背景的网站织梦可以做英文网站吗
  • 公司做网站 需要解决哪些问题富阳网站设计
  • 做个网站商场需要多少石家庄网络建设
  • 手表网站查询南昌网站推广¥做下拉去118cr
  • 南昌网站建设公司市场全国ip地址查询
  • 网站都是哪里找的网站容量