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

php网站开发遇到的问题广州网站制作工作室

php网站开发遇到的问题,广州网站制作工作室,郴州网络推广公司,开发工具有哪些https://leetcode.cn/problems/symmetric-tree/description/?envTypestudy-plan-v2envIdtop-100-liked 心血来潮#xff0c;突然感觉很久没做leetcode#xff0c;刷一题。 看到“简单”#xff0c;哦吼#xff0c;应该很快吧。 结果真是《简单》 题目描述 给你一个…https://leetcode.cn/problems/symmetric-tree/description/?envTypestudy-plan-v2envIdtop-100-liked 心血来潮突然感觉很久没做leetcode刷一题。 看到“简单”哦吼应该很快吧。 结果真是《简单》 题目描述 给你一个树判断这个树是否根据根节点做中轴线是对称的。 思路 层级遍历 我的第一反应是简单 感觉不是层级遍历一下得到一层信息之后把他们拿出来只要这个一层拿出来的序列是对称的每一层都是对称的就说明这个树就是对称的。 于是乎我就开始编码写写写遇到第一个问题 我该如何明确这一层已经结束了呢 “聪明”的我觉得不是直接计数一下就完事了吗第一层1第二层2第三层2*2… 但这个又个前提是满二叉树才能够使用。“简单”只要看到null进行填充就好啦 于是我就开开心心写代码提交然后WA笑死。 问题因为如果使用层级遍历并且填充的话理论上是可以的但是我用的层级遍历是使用队列进行遍历的。这就有一个问题 当你的第一层也就是22在queue里面的时候这时候没问题可以进行填充知道第二层应该是[nil, 2, 2, nil]并且也插入了队列[2,2]。 但是我当时写的逻辑是我只要判断[nil, 2, 2, nil]这个成立之后就不管了直接flush掉这时候就有个问题我怎么知道队列中的[2,2]是那个他是左树的还是右树的还是混的 而且就算我保留了上一层的结果我是可以判断他在那个但感觉逻辑会很混乱而且遇上这种全部数值一致的感觉没法做。 但我在写这个博客时候感觉可以将树展开成数组保存的那种方式应该就可以了。这样就可以保证每一个nil都是正确填充。但感觉会非常占内存。。。 中序遍历 前面层级遍历不行之后我就换了思路感觉不是中序一下这个树只要这个树是对称的理论上来说 [左树]中[右树] 这里的左树reverse一下会等于右树 感觉这个思路一点问题没有直接写代码哈哈哈又是WA 问题 看这个图你会发现这里并不对称但左子树右子树无论前中后序全部都一样都是[2,2] 因为 题目要求对称本质上是要获取树的形状信息但是你如果用了中序遍历就会使得树的形状信息被压缩了压缩成了序列信息。 这里是有损的。 而一个单纯的序列信息并不能准确对应一个树因为都知道想要还原一个树你必须要有中序遍历和其他任何一种便利所以你现在只有中序遍历是不能够判断是否对称的。 同步中序 基于上面思路我的脑子开始抽象了起来我感觉我不能直接中序一下压缩然后用压缩后的结果判断那我就让左树跟右树一起同步做“中序遍历”这样在做同步的过程之中进行判断保证树的形状信息。 通俗一点讲就是左树要往左边走右树遍历也往左边走。 但是是要判断对称的所以左树往左边走右树就往右边走。 然后就有了以下代码 /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/func judge(node1 *TreeNode, node2 *TreeNode) bool {if (node1 ! nil node2 nil) || (node1 nil node2 ! nil) {return false}return true } func query(node1 *TreeNode, node2 *TreeNode) bool{if !judge(node1, node2){return false}if node1 nil{return true}if !query(node1.Left, node2.Right) {return false}if node1.Val ! node2.Val{return false}if !query(node1.Right, node2.Left) {return false}return true }func isSymmetric(root *TreeNode) bool {// left : make([]int, 0)// left midQuery(root.Left, left)// right : make([]int, 0)// right midQuery(root.Right, right)// fmt.Println(left, right)// if len(left) ! len(right){// return false// }// for i : 0; i len(left); i {// if left[i] ! right[len(left)-1 - i] {// return false// }// }if !judge(root.Left, root.Right) {return false}return query(root.Left, root.Right) }真tmd简单啊
http://www.w-s-a.com/news/900899/

相关文章:

  • wordpress制作单页网站导航页面鞍山信息港招聘信息
  • 屏蔽ip地址访问网站自己做衣服的网站
  • 网站建设 域名业务 邮箱哪里有网站建设中心
  • 免费网站赚钱重庆建设摩托车股份有限公司
  • 合肥水运建设工程监理网站自己买服务器能在wordpress建网站
  • wordpress积分商城主题整站seo排名要多少钱
  • 鲜花网站建设的利息分析网站设计与制作专业
  • 深圳网站建设排名做网站的公司高创
  • 杭州哪家做外贸网站全国物流网站有哪些平台
  • 企业网站建设个人博客鞍山晟宇网站建设
  • 广东省自然资源厅网站h5移动端网站模板下载
  • 网站建设和安全管理制度云南九泰建设工程有限公司官方网站
  • 网站的关键词和描述做外贸家纺资料网站
  • 绥化市建设工程网站招投标地址链接怎么生成
  • 网站制作设计发展前景网页链接制作生成二维码
  • 廊坊哪里有制作手机网站的企业网站建设费用财务处理
  • 手机网站建设书籍工商咨询服务
  • 麻花星空影视传媒制作公司网站美食网站网站建设定位
  • 网站的切图是谁来做学会网站 建设
  • 交通局网站建设方案答辩ppt模板免费下载 素材
  • 个人摄影网站推介网手机版
  • 有哪些免费的视频网站网站开发和竞价
  • 学校网站如何做广州商城型网站建设
  • 微网站建设哪家便宜易优建站系统
  • 推荐做木工的视频网站毕业设计做的网站抄袭
  • 网站导航页面制作wordpress调用文章阅读量
  • app小程序网站开发品牌购物网站十大排名
  • 用wordpress做购物网站龙岩品牌设计
  • 网站开发是指wordpress系统在线升级
  • 网站建设运营的灵魂是什么意思页面跳转中