双非二本找工作前的准备day21

 学习目标:

每天复习代码随想录上的题目1-2道算法(时间充足可以继续)

今日碎碎念:

1)今天开始是二叉树系列

2)出租屋里不知道干啥,看看书啊刷刷算法,打打游戏,学学技术啥的,不让自己太闲着才行。

3)天天都是吃外卖,不出门了都,后续等到9号回来之后继续开始整理八股(以复习为主)。


力扣刷题

算法

力扣515:515. 在每个树行中找最大值

class Solution {//结果集public List<List<Integer>> res = new ArrayList<List<Integer>>();public List<List<Integer>> levelOrder(TreeNode root) {dfs(root,0);return res;}//dfs方式public void dfs(TreeNode node,Integer deep){if(node == null) return;//记录深度deep++;//开始将遍历到的层加入大结果集if(res.size() < deep){//解读该if代码块:如果走到下一层了,我们就需要new一个新的ListList<Integer> item = new ArrayList<>();//将新一层的小结果集放入大结果集res.add(item);}//开始dfs:通过deep找到对应层级的小结果集来存入遍历到的节点res.get(deep-1).add(node.val);dfs(node.left,deep);dfs(node.right,deep);}
}

力扣116:116. 填充每个节点的下一个右侧节点指针

1)解答思路:这道题需要我们特殊处理一下根节点,因为根节点是没有右边兄弟节点的

2)同理,每一层的最后一个节点也是一样没有右边兄弟节点的,想明白这两个点,然后再去bfs遍历

/*
// Definition for a Node.
class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, Node _left, Node _right, Node _next) {val = _val;left = _left;right = _right;next = _next;}
};
*/class Solution {public Node connect(Node root) {Deque<Node> que = new LinkedList<>();if(root != null) que.offer(root);//bfswhile(!que.isEmpty()){//记录当前大小int size = que.size();//除了根节点没有兄弟节点以外,其余的都有,因此先对根节点特殊处理Node cur = que.poll();if(cur.left!=null) que.offer(cur.left);if(cur.right!=null) que.offer(cur.right);//然后去处理所有的子节点for(int i = 1;i<size;i++){Node tmp = que.poll();if(tmp.left!=null) que.offer(tmp.left);if(tmp.right!=null) que.offer(tmp.right);//记录上一个节点,然后指向右边cur.next = tmp;cur = tmp;}}return root;}
}

力扣104:104. 二叉树的最大深度

解答思路:

        1)注意,这里并不需要对每个节点去找从该节点出发的最深,因为bfs的性质,只要队列中还有,还能往下,deep直接增加即可,如果是dfs,就会麻烦一点。

class Solution {public int maxDepth(TreeNode root) {if(root == null) return 0;int deep = 0;Deque<TreeNode> que = new LinkedList<>();que.offer(root);while(!que.isEmpty()){int size = que.size();deep++;for(int i = 0;i < size;i++){//拿出当前节点TreeNode tmp = que.poll();//找孩子if(tmp.left!=null) que.offer(tmp.left);if(tmp.right!=null) que.offer(tmp.right);}}return deep;}
}

 力扣111:111. 二叉树的最小深度

解答思路:

        1)这道题思路同上,bfs直接做,当,当前节点的左右孩子为空,就可以返回答案了,如果存在孩子,还能继续往下走。

class Solution {public int minDepth(TreeNode root) {if(root == null) return 0;int deep = 0;Deque<TreeNode> que = new LinkedList<>();que.offer(root);while(!que.isEmpty()){int size = que.size();//bfs性质,队列没空就可以继续deep++;for(int i = 0;i<size;i++){TreeNode tmp = que.poll();//当左右孩子都为空的时候才可以返回答案if(tmp.left==null && tmp.right==null) return deep;if(tmp.left!=null) que.offer(tmp.left);if(tmp.right!=null) que.offer(tmp.right);}}return deep;}
}

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

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

相关文章

通过iMock学习Jvmsandbox

Jvm-sandbox Jvm-sandbox基于Jvm-sandbox的Mock平台iMockiMock的工程学习iMock怎么写的&#xff08;sandbox的module应该怎么写&#xff09; Jvm-sandbox Jvm-sandbox是阿里开源的一款java的沙箱&#xff0c;看网上的介绍在沙箱里你可以做你能想到的奇妙的事情。 基于Jvm-san…

JavaScript百炼成仙自学笔记——16

HTML&#xff1a; 是什么&#xff1f;HyperText Markup Language 既超文本标记语言&#xff08;www的描述语言&#xff09; 既平常上网时所看到的网页 为什么&#xff1f;把存放在一台计算机中的文本或是图形与另一台计算机中的文本或图形方便的联系在一起&#xff0c;形成…

Python turtle库 实现 随机彩色文字平面批量输出

# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import turtle import random import turtle as t t.colormode(255) turtle.bgcolor("white") h255 l50#字号 m60#间隔 n500 t.penup() turtle.hide…

redis进阶--IDEA环境

目录 一、解决redis服务器端口问题 二、java环境下使用redis 三、javaSpringt环境下使用redis 四、redis持久化 1、持久化概念 2、redis持久化策略 3、RDB策略 4、AOF策略 5、混合持久化策略 五、redis事务 1、数据库事务 2、redis事务特点 3、redis事务的作用 4…

在模方中已经选好水岸线了,但是点处理瓦块的时候还是提示水岸线没选

答&#xff1a;能部分位置不闭合&#xff0c;双击右键闭合一下&#xff0c;可以强行闭合缺口。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff0c;支持…

[UDS][OTA] 自定义 IntelHEX (IHEX) format read/write library in C

参考修改 参考github的MIT协议开源项目 ihex 改写的代码 https://gitee.com/liudegui/intelhex-c 修改点&#xff1a; 修改Makefile脚本&#xff0c;支持x86_X64平台和aarch64平台将默认读取行长度设置为16位删除与ihex和bin之间的转换无关的示例代码 十六进制描述 HEX格式…

车牌检测识别功能实现(pyqt)

在本专题前面相关博客中已经讲述了 pyqt + yolo + lprnet 实现的车牌检测识别功能。带qt界面的。 本博文将结合前面训练好的模型来实现车牌的检测与识别。并用pyqt实现界面。最终通过检测车牌检测识别功能。 1)、通过pyqt5设计界面 ui文件如下: <?xml version="1…

TC3xx MTU概述(2)

目录 1.概述 2.如何配置NDT 3.小结 1.概述 上篇TC3xx MTU概述(1)-CSDN博客我们讲解了MTU基本功能和MBIST基本概念&#xff0c;接下来我们继续讲解MTU如何配置NDT算法。 2.如何配置NDT 前面聊了那么多概念&#xff0c;我们还是来看看如何配置MTU来实现NDT。 MTU寄存器分为…

pdf 文件版面分析--PyMuPDF (python 文档解析提取)

1.介绍 PyMuPDF 和Fitz 是用于Python中处理PDF文件的相关模块。Fitz是P有MuPDF的字模块。提供一个简化和封装版本的P有MuPDF功能。 关系&#xff1a; PyMuPDF&#xff1a; 提供广泛的功能&#xff0c;用于操作PDF文档&#xff0c; 包括方便的高级函数与底层操作Fitz &#x…

liunx服务器部署Llama2大模型

模型&#xff1a;Llama2-chat-13B-Chinese-50W 01 下载安装 Llama2 模型 Huggingface在国内是访问不了的&#xff0c;需要使用代理。在这里推荐使用 clash-for-liunx 配置代理。 安装 git-lfs&#xff0c;用于大文件下载 sudo apt-get install git-lfs git lfs installHuggi…

java实现通用的文本相似度评估方法(余弦相似度计算)

余弦相似度计算&#xff1a;通用的文本相似度评估方法&#xff0c;通过计算向量之间的夹角来衡量文本的相似度 总体实现思路为&#xff1a; 对两段文本进行分词&#xff0c;得到单词列表。将两段文本的单词列表合并&#xff0c;并去除重复的单词&#xff0c;形成词汇表。根据词…

数据分析必备:一步步教你如何用numpy改变数据处理(5)

介绍&#xff1a; NumPy是Python中用于数值计算的一个非常强大的库&#xff0c;它提供了高效的N维数组对象和丰富的数学函数。在数据分析和科学计算领域&#xff0c;使用NumPy可以极大地提高编程效率和运算速度。以下是对NumPy的切片和索引操作的介绍&#xff1a; 解释说明&am…

Transformer 解析 超级详细版

推荐学习视频 汉语自然语言处理-从零解读碾压循环神经网络的transformer模型(一)- 注意力机制-位置编码-attention is all you need_哔哩哔哩_bilibili 目录 首先下transformer和LSTM的最大区别是什么&#xff1f; 1.positional \ encoding, 即位置嵌入(或位置编码); 2 自注…

《21天学通C++》(第十四章) 宏和模板介绍(1)

1.使用#define定义常量 例子 #include <iostream> #include <string> using namespace std;#define ARRAY_LENGTH 25 #define PI 3.1415 #define MY_DOUBLE double #define FAV_WHISKY "Jack"int main() {int number [ARRAY_LENGTH]{0};cout<<&q…

AI神助攻!小白也能制作自动重命名工具~

我们平时从网上下载一些文件&#xff0c;文件名很多都是一大串字母和数字&#xff0c;不打开看看&#xff0c;根本不知道里面是什么内容。 我想能不能做个工具&#xff0c;把我们一个文件夹下面的所有word、excel、ppt、pdf文件重命名为文件内容的第一行。 我们有些朋友可能不会…

全国33个省228189个矿产地位置分布数据,含经纬度坐标/CSV格式

全国矿产地分布&#xff08;2021版&#xff09; 数据来源&#xff1a; 全国矿产地数据库2021版 (ngac.org.cn) http://data.ngac.org.cn/mineralresource/index.html 数据获取方法&#xff1a;树谷资料库大全&#xff08;2024年4月19日更新&#xff09; 进入网站后&#xf…

【华为】路由策略小实验

【华为】软考中级-路由策略实验 实验需求拓扑配置AR1AR2需求1需求2 AR3 检验 实验需求 1、让 R3 可以学到R1的 192.168.10.0/24和192.168.20.0/24的 路由&#xff0c;不能学到192.168.30.0/24。 2、让 R1可以学到 R3 的 172.16.20.0/24和172.16.30.0/24的路由&#xff0c;不能…

OSTEP Projects:Reverse

本文将介绍操作系统导论&#xff08;Operating Systems: Three Easy Pieces&#xff09;作者所开源的操作系统相关课程项目 的 Reverse 部分&#xff0c;包含个人的代码实现和设计思路。 思路 题目的要求很简单&#xff1a;按行读取数据&#xff0c;读取完成后将所读取到的所有…

75.网络游戏逆向分析与漏洞攻防-角色与怪物信息的更新-伪造服务端更新属性消息欺骗客户端

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

wordpress外贸网站建设主机选择的注意事项

在为WordPress外贸网站建设选择主机时&#xff0c;您需要注意以下几点&#xff1a; 服务器地理位置&#xff1a; 选择一个靠近目标客户群的服务器位置&#xff0c;这将有助于提高网站的加载速度和可靠性。通常&#xff0c;如果您的目标客户群是国外用户&#xff0c;建议选择美…