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

 学习目标:

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

今日碎碎念:

1)昨天赶飞机,哎飞机延误,通宵到的学校,太痛苦啦

2)保持打卡!加油啦!

3)今天要做的事情就是,完成算法打卡,然后总结实习的工作,整理好自己的思路,应对后面可能的面试。


力扣刷题

算法

力扣222:222. 完全二叉树的节点个数

bfs做法

class Solution {public int countNodes(TreeNode root) {if(root == null) return 0;Deque<TreeNode> que = new LinkedList<>();int count = 0;que.offer(root);while(!que.isEmpty()){int size = que.size();for(int i = 0;i<size;i++){TreeNode tmp = que.poll();count++;if(tmp.left!=null) que.offer(tmp.left);if(tmp.right!=null) que.offer(tmp.right);}}return count;}
}

力扣110:110. 平衡二叉树

解答思路:

        1)这道题更适合使用递归来做

        2)首先得明确定义,什么是平衡二叉树?

                2.1)是二叉排序树

                2.2)任何一个节点的左子树或者右子树都是「平衡二叉树」(左右高度差小于等于 1)

        3)这道题更适合我们去通过后序遍历的方式,即从叶子开始往回退,而不要从根节点往下找去判断

class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root) == -1 ? false : true;}public int getHeight(TreeNode root){if(root == null) return 0;int leftHight = getHeight(root.left);if(leftHight == -1) return -1;int rightHeight = getHeight(root.right);if(rightHeight == -1) return -1;return Math.abs(leftHight-rightHeight) > 1 ? -1 : 1 + Math.max(leftHight,rightHeight);}
}

力扣257:257. 二叉树的所有路径

解答思路:看注释即可

class Solution {public List<String> binaryTreePaths(TreeNode root) {List<String> res = new ArrayList<>();//结果集if(root == null) return res;List<Integer> paths = new ArrayList<>();back(root,paths,res);return res;}public void back(TreeNode root,List<Integer> paths,List<String> res){//先加入节点paths.add(root.val);//判断是否为叶子if(root.left == null && root.right == null){//是叶子就直接加入结果集StringBuilder sb = new StringBuilder();//开始拼接:注意,最后一个没有箭头,要特殊处理for(int i = 0;i<paths.size()-1;i++){//取出数字然后拼接箭头sb.append(paths.get(i)).append("->");}//把最后一个节点加入sb.append(paths.get(paths.size()-1));//将本次路径加入结果集res.add(sb.toString());}//如果没到叶子结点,就找左右孩子if(root.left!=null){back(root.left,paths,res);//回溯paths.remove(paths.size()-1);}if(root.right!=null) {back(root.right,paths,res);//回溯paths.remove(paths.size()-1);}}
}

 力扣404:404. 左叶子之和

解答思路:看注释即可

class Solution {int sum = 0;public int sumOfLeftLeaves(TreeNode root) {dfs(root);return sum;}public void dfs(TreeNode root){if(root==null){return;}//只要加左节点值,同时需要判断左节点是否还有孩子,没有则加if(root.left!=null&&root.left.left==null&&root.left.right==null){sum+=root.left.val;}//左右找dfs(root.left);dfs(root.right);}
}

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

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

相关文章

【知识点随笔分享 | 第十篇】快速介绍一致性Hash算法

前言&#xff1a; 在分布式系统中&#xff0c;数据的分布和负载均衡是至关重要的问题。一致性哈希算法是一种解决这些挑战的有效工具&#xff0c;它在分布式存储、负载均衡和缓存系统等领域得到了广泛应用。 随着互联网规模的不断扩大&#xff0c;传统的哈希算法在面对大规模…

cmake进阶:变量的作用域(目录作用域与全局作用域)

一. 简介 前面从函数作用域方面学习了变量的作用域&#xff0c;本文从目录作用域方面来学习变量的作用域。 二. cmake进阶&#xff1a;从目录作用域方面学习变量的作用域 1. 目录作用域 什么是目录作用域&#xff1f; 我把这个作用域叫做目录作用域。子目录会将父目录的所…

uniapp打包安卓 使用echarts插件 柱状折线等...

uniapp打包安卓 使用echarts插件 柱状折线等… 因为安卓端没有dom操作所以要使用 renderjs 直接上代码 html <template><view class"content"><viewid"echartsa":prop"viewProp":change:prop"echarts.updateEcharts&quo…

Web3 ETF软件系统的主要功能

下面是Web3 ETF系统软件的主要功能&#xff0c;这些功能共同构成了Web3 ETF系统软件的核心&#xff0c;使其能够有效地为投资者提供Web3技术相关的投资机会&#xff0c;同时确保合规性、安全性和透明度。北京木奇移动软件有限公司&#xff0c;专业的软件外包开发公司&#xff0…

【Git】Git学习-10-11:GitHub,SHH配置,克隆仓库

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 创建仓库 配置SSH密钥可以更加安全&#xff0c;方便地推送、拉取代码 根目录下&#xff0c;进入.ssh文件&am…

【C语言】——联合体与枚举

【C语言】——联合体与枚举 一、联合体1.1、联合体类型的声明1.2、联合体的特点1.3、相同成员的结构体和联合体对比1.4、联合体的大小计算1.5、联合体的应用举例 二、枚举2.1、枚举类型的声明2.2、枚举类型的优点 一、联合体 1.1、联合体类型的声明 联合体也叫做共用体   与…

学习R语言第五天

文章目录 语法学习创建数据的方式绘制图形的方式图形添加颜色如何操作数据的方式数据进行验算的判断加付值的方式修改变量名称的方式判断是否存在缺失值在计算的方式忽略缺失值通过函数的方式忽略缺失值日期处理的方式字符串转化成日期的方式格式化数据框中数据返回当前的日期的…

使用 BurpSuite,Yakit 进行常规渗透测试

使用 BurpSuite&#xff1a; 攻击web应用程序的集成平台&#xff1a;BurpSuite是一个用于攻击web应用程序的集成平台&#xff0c;包含了许多工具&#xff0c;可以高效地与多个工具一起工作&#xff0c;以加快攻击应用程序的过程。 多种安全测试功能&#xff1a;BurpSuite提供了…

19_Scala集合概述

文章目录 集合回顾javaScala集合三大类String & StringBuilderScala集合两大类 集合 回顾java scala与Java有所不同 函数式编程语言更侧重集合本身提供的哪些功能&#xff1b; Scala集合三大类 1.Seq 存储有序数据可重复 类比 List 2.Set 存储无序数据不可重复 3.Map…

【算法系列】字符串

目录 leetcode题目 一、最长公共前缀 二、最长回文子串 三、二进制求和 四、字符串相加 五、字符串相乘 六、仅仅反转字母 七、字符串最后一个单词的长度 八、验证回文串 九、反转字符串 十、反转字符串 II 十一、反转字符串中的单词 III leetcode题目 一、最长公…

frp内网穿透服务搭建与使用

frp内网穿透服务搭建与使用 1、frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。frp工作原理 服务端运行&#xff0c;监听一个主端口…

Parts2Whole革新:多参照图定制人像,创新自定义肖像生成框架!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; Parts2Whole革新&#xff1a;多参照图定制人像&#xff0c;创新自定义肖像生成框架&#xff01; 引言&#xff1a;探索多条件人像生成的新篇章 在数字内容创作…

论文精读-存内计算芯片研究进展及应用

文章目录 论文精读-存内计算芯片研究进展及应用概述背景介绍前人工作 存内计算3.1 SRAM存内计算3.2 DRAM存内计算3.3 ReRAM/PCM存内计算3.4 MRAM存内计算3.5 NOR Flash存内计算3.6 基于其他介质的存内计算3.7 存内计算芯片应用场景 总结QA 论文精读-存内计算芯片研究进展及应用…

SpringBoot中实现发送邮件

概要 在Spring Boot中发送电子邮件相对简单。你可以使用Spring的邮件支持来实现这一点。 步骤&#xff1a; 1.添加依赖&#xff1a;首先&#xff0c;需要在你的pom.xml文件中添加Spring Boot的邮件发送器依赖。 2. 配置邮件服务器&#xff1a;在application.properties或app…

嵌入式全栈开发学习笔记---C语言笔试复习大全14

目录 指针初级 指针的概念 指针类型 指针类型长度 指针的定义 通过指针访问数据 p1和*p1的区别 指针做函数参数 上一篇复习了8道编程题&#xff0c;这篇开始正式复习之指针&#xff01; 说明&#xff1a;我们学过单片机的一般都是有C语言基础的了&#xff0c;网上关于C…

网络 IO 模式

同步 IO 与异步 IO 同步 IO 和异步 IO 是关于数据读写方式的两种不同模式。 同步 IO 是指在程序读写数据时&#xff0c;需要等待操作完成后才能继续执行后面的程序。这种模式下&#xff0c;当程序使用阻塞式 IO 时&#xff0c;会一直等待IO操作完成&#xff0c;程序会暂停执行…

nvm : nodejs 版本管理工具

前言 nvm全名node.js version management。nvm 是 nodejs 版本管理工具&#xff0c;通过它可以安装和切换不同版本的nodejs。 windows 下安装 nvm nvm安装与使用https://github.com/coreybutler/nvm-windows linux 下安装 nvm linux 安装nvm,通过nvm安装nodehttps://githu…

​​【收录 Hello 算法】3.3 数字编码

目录 3.3 数字编码 3.3.1 原码、反码和补码 3.3.2 浮点数编码 3.3 数字编码 Tip 在本书中&#xff0c;标题带有 * 符号的是选读章节。如果你时间有限或感到理解困难&#xff0c;可以先跳过&#xff0c;等学完必读章节后再单独攻克。 3.3.1 原码、反码和补码 在…

常用的预编码算法学习

一、概况 预编码算法的常用实现方式有以下几种: 1. 间隔预编码(Interval Pre-coding):该算法将原始数据分成若干个间隔,然后对每个间隔内的数据进行编码。间隔的长度可以根据具体情况进行选择,常见的间隔长度有固定长度和可变长度两种方式。 2. 迭代预编码(Iterative…

一、RocketMQ基本概述与部署

RocketMQ基本概述与安装 一、概述1.MQ概述1.1 用途1.2 常见MQ产品1.3 MQ常用的协议 2.RocketMQ概述2.1 发展历程 二、相关概念1.基本概念1.1 消息&#xff08;Message&#xff09;1.2 主题&#xff08;Topic&#xff09;1.3 标签&#xff08;Tag&#xff09;1.4 队列&#xff0…