【Breadth-first Search 】513. Find Bottom Left Tree Value

输入:一颗二叉树
输出:这颗树的最下面一层最左边的节点值。
分析:在这里插入图片描述

用BFS的思路解决最直观。读每一层,在每一层记录第一个元素的值。在队列中第一层:1;第二层:2,3;第三层 4,5,6。如此继续下去。只要保留下第一个元素的值,即为答案。

分析2:
 如果用DFS的思路,先序遍历树:1,2,4,3,5,7,6。遍历过程中带着当前节点的层次,每个层次只记录下遇到的第一个值。
 初始化:recordLevel=0,value=0。
 处理:对于节点root,层次level,如果level>recordLevellevel>recordLevellevel>recordLevel,则value=root.val,并且更新recordLevel=levelrecordLevel=levelrecordLevel=level。接着遍历左右节点。

代码

感悟:写代码就像写作一样。我们写作之前总是需要多读书,看别人怎么写,学习写作技巧。代码也一样,多看看别人写的代码,才会发现“哇,原来可以这样做啊”。看得多了,自己才可能会写。写作之前需要有独立思考,想明白要写什么,怎么写,有个大致轮廓。那会老师叫打草稿。有时候会写出来,有时候打的是腹稿。写代码也一样,写之前会先想清楚大概要怎么做,这么做是不是正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java:这是一份全面 详细的 Synchronized关键字 学习指南

前言 在Java中,有一个常被忽略 但 非常重要的关键字Synchronized今天,我将详细讲解 Java关键字Synchronized的所有知识,希望你们会喜欢目录 1. 定义 Java中的1个关键字 2. 作用 保证同一时刻最多只有1个线程执行 被Synchronized修饰的方法…

[Leetcode][第404题][JAVA][左叶子之和][DFS][BFS]

【问题描述】[简单] 【解答思路】 1. DFS 递进思想 一步一步递进 /先序遍历求所有节点值之和 public int sumOfTrees(TreeNode root) {if (root null) {return 0;}int leave root.val;int left sumOfTrees(root.left);int right sumOfTrees(root.right);return left ri…

01背包、完全背包、多重背包

参考(都有些错误):https://github.com/guanjunjian/Interview-Summary/blob/master/notes/algorithms/%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95/01%E8%83%8C%E5%8C%85.mdhttps://blog.csdn.net/na_beginning/article/details/62884939 #include…

【Breadth-first Search 】515. Find Largest Value in Each Tree Row

输入:一颗二叉树 输出:这棵树每一层的最大值。 分析:和513 题目一样,处理层次问题,使用BFS最直观。使用和513一样的模板,只是记录下该层最大值即可。 分析2:用DFS处理层次遍历的问题&#xff0…

第十四期: 拥有7000多万店铺和10多亿件商品的微店如何打造AI系统?

AI技术对于电商至关重要,但AI的实践门槛很高,对于创业公司尤其如此。那么电商创业公司如何打造AI系统?如何利用AI解决实际问题? 作者:夏剑 AI技术对于电商至关重要,但AI的实践门槛很高,对于创业公司尤其如此。那么电…

【数据结构与算法】【算法思想】位图

位图BitMap 算法 public class BitMap { // Java中char类型占16bit,也即是2个字节private char[] bytes;private int nbits;//nbits 总容量public BitMap(int nbits) {this.nbits nbits;this.bytes new char[nbits/161];}//长度16 k/16 定位某一段 k%16定位段中某…

js 高阶函数之柯里化

博客地址:https://ainyi.com/74 定义 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 就是只传递给函数…

【Breadth-first Search 】专题3

529 Minesweeper 输入:一个二维矩阵,一些修改规则。  如果点到一个隐藏的地雷M,把它改为X,游戏结束  如果点到一个E,且其周围8邻接的范围没有地雷,那么应该把8邻接的范围的格子全部翻开为E  如果翻开的…

第十五期:一个用户至少“值”100美元,美国最“贵”数据法案CCPA明年初实行!

还在急于应对欧洲GDPR(General Data Protection Regulation,通用数据保护条例)?那你就OUT了! 作者:文摘菌 大数据文摘出品 作者:刘俊寰 还在急于应对欧洲GDPR(General Data Protection Regul…

【数据结构与算法】【算法思想】【推荐系统】向量空间

背景知识 欧几里得的距离公式 推荐系统方法 应用 如何实现一个简单的音乐推荐系统? 1. 基于相似用户做推荐 找到跟你口味偏好相似的用户,把他们爱听的歌曲推荐给你; 2. 基于相似歌曲做推荐 找出跟你喜爱的歌曲特征相似的歌曲&#x…

第十六期:AWS 瘫痪:DNS 被 DDoS 攻击了 15 个小时

AWS警告客户,分布式攻击严重阻碍网络连接,殃及众多网站和应用软件,云巨头AWS遭到攻击后,今天其部分系统实际上断。网。 作者:佚名来源|2019-10-23 15:17 AWS警告客户,分布式攻击严重阻碍网络连接&#xff…

【Breadth-first Search 】752. Open the Lock

输入:deadends 是指针终止状态列表,target 是希望到达的指针状态,初始化指针状态是0000。 输出:如果指针能够到达target状态,则变化的最少步骤是多少。如果不能到达target状态,返回-1。 分析:指…

Spring Security在标准登录表单中添加一个额外的字段

概述 在本文中,我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案。 我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式。 我们的第一种方法是一个简单的解决方案,专注于重用现…

【数据结构与算法】【算法思想】【MySQL数据库索引】B+树

B树特点 考虑因素 支持按照区间来查找数据 磁盘 IO 操作 N叉树 树的高度就等于每次查询数据时磁盘 IO 操作的次数 在选择 m 大小的时候,要尽量让每个节点的大小等于一个页的大小。读取一个节点,只需要一次磁盘 IO 操作。(分裂成两个节点&am…

第十七期:2019人工智能统计数字和一些重要事实

人工智能(AI)每天在以惊人的速度发展。这项技术在2018年已经取得了巨大的成功,简化医疗保健业的工作流程,降低制造业的间接费用,并减少教育业的行政工作量。现在是2019年,每天似乎都有一家新的AI初创公司冒出来,致力于…

Filter和Listener

javaweb三大组件1. Filter:过滤器 2. Listener:监听器3. servlet Filter:过滤器 1. 概念:* 生活中的过滤器:净水器,空气净化器,土匪、* web中的过滤器:当访问服务器的资源时,过滤器可…

【Breadth-first Search 】934. Shortest Bridge

输入:一个二维数组,每个元素的值为0/1。 规则:所有连在一起的1是一个岛屿,数组中包含2个岛屿。连在一起是指上下左右4个方向。可以将0变为1,将2个岛屿链接在一起。 输出:最小改变多少个0就可以将2个岛屿链接…

[Leetcode][第78题][JAVA][子集][位运算][回溯]

【问题描述】[中等] 【解答思路】 1. 位运算 复杂度 class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsets(int[] n…

第十八期:闲鱼上哪些商品抢手?Python分析后告诉你

经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能&#xff0c;都能为他们带来不错的 睡后收入。 作者&#xff1a;星安果 1.目标场景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能&#xff0c;都能为他们带来不错的睡后收入。 闲鱼上大量的商品&#xf…

【Breadth-first Search 】785. Is Graph Bipartite?

输入&#xff1a;一个无向图graph。graph[i] 的值是一些节点&#xff0c;表示从i到这些节点有边。图中节点用0到graph.length-1表示。这个图没有指向自己的边&#xff0c;也就是说节点i不会有指向节点i的边。输入中不会有重复的边。 输出&#xff1a;如果这个图是bipartite&…