自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 力扣-4.25-爬楼梯

有多少种不同的方法可以到达楼顶呐?首先达到楼顶有两种方式,一是最后一次走了两个阶梯,每一是最后一次只走了一次楼梯。2、确定递推公式:dp[i]=max(dp[i-1],dp[i-2])1、dp[i]的含义是:爬到第i层阶梯有dp[i]种方式。你有多少种不同的方法可以爬到楼顶呢?3、初始化:dp[1]=1;这个时候就可以用动态规划的方法。4、确定遍历顺序:从前往后遍历。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。5、距离推导dp数组。

2024-04-25 21:49:07 202 1

原创 力扣-4.24-二叉树的直径

一条路径的长度等于经过的节点数减去1,所以求直径就等效于求路径经过节点的最大值减去1。任意一个路径可以看作以某个节点为起点,从其左孩子到右孩子向下遍历的路径拼接得到。3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这个题目里面讲可以经过根节点也可以不经过根节点。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。

2024-04-24 22:12:18 137

原创 力扣-4.23-合并二叉树

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;给你一个二叉树,请你返回其按照层序遍历得到的节点值,即逐层的从左到右访问所有节点。前面一篇blog说了二叉树的递归遍历和二叉树的迭代遍历。这里用到队列先进先出,符合一层一层遍历的逻辑。null 的节点将直接作为新二叉树的节点。合并过程必须从两个树的根节点开始。返回合并后的二叉树。

2024-04-23 21:45:52 283 3

原创 力扣-4.22--对称二叉树

判断一个二叉树是不是对称二叉树,首先这里面的对称是两个树是不是对称的,,也就是根节点的左子树和右子树是不是对称的,那么在递归遍历的过程中,是要同时遍历两颗树的。左节点右节点不为空,且值不相等---->不对称---->return false。左节点不为空、右节点为空----->不对称---->return false;左节点为空、右节点不为空--->不对称----->return false;左节点为空,右节点为空---->对称---->return true;以上两种情况都满足就符合。

2024-04-22 22:13:22 235

原创 力扣-4.21-翻转二叉树

二叉树主要有两种遍历方式:深度优先遍历:先往深处走,遇到叶子节点再往回走(前序遍历、中序遍历、后续遍历)迭代法、递归法。其次便是广度优先遍历:一层一层的去遍历。1、确定返回值类型TreeNode* invertTree(TreeNode*root)3、确定单层循环的逻辑。先交换子节点,再交换子树。2、确定终止条件,当当前节点时空的时候,就返回。把每一个节点的左右孩子交换一下就可以了。,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点。

2024-04-21 20:36:52 191 1

原创 力扣-4.20-二叉树中的中序遍历

在使用迭代法写中序遍历的时候,需要用指针的遍历来帮助访问节点,使用栈来处理节点上的元素,还是要画个图理解一下的。递归三部曲:确定返回类型、确定终止条件、确定单层循环的逻辑。给定一个二叉树的根节点。中序遍历,也就是左中右。

2024-04-20 21:15:00 128 4

原创 力扣-4.19-二叉树的最大深度和最小深度

3、确定单程循环的逻辑:先求左子树的深度,再求右子树的深度,最后最大深度是左右子树的深度+1,因为要包含当前节点的高度。那么这道题最小深度是从根节点到最近叶子节点的最短路径上的节点数量,注意是叶子节点,叶子节点也就是左右孩子为空的节点。同理,当左孩子不为空,右孩子是空的时候,这个时候最小深度就是1+右子树的深度。当左孩子是空,右孩子不是空的时候,这个时候最小深度就是1+左子树的深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。最大深度是从根节点到最远叶子节点的最长路径上的节点数。

2024-04-19 21:23:23 154

原创 力扣4.18--有效的括号

栈和队列是STL中的数据结构,容器适配器。首先,字符串中的括号不匹配有以下几种情况。1、字符串中左方向括号多余,所以不匹配。3、字符串中右方向多余,所以不匹配。2、括号没有多余,但是类型不匹配。栈是先进后出,队列是先进先出。,判断字符串是否有效。

2024-04-18 22:01:30 106 3

原创 力扣-4.17-买卖股票

在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。贪心的本质就是选取每一个阶段的最优解,从而达到全局最优。局部最优解:收集每天的正利润,全局最优:求得最大利润。emmm,获取最大利润,收集正利润的区间。买入这只股票,并选择在。

2024-04-17 21:05:06 219

原创 力扣2--4.16之两数之和

题目:给定一个整数数组nums和一个目标值target,找出数组中和为目标值的两个整数,并返回他们的下标。整体思路:将map存放我们访问过的元素,然后去遍历元素,用总值减去遍历的值,看看map中是否存在这个值。map是一种key value 的结构,用key保存数值,用value保存数值所在的下标。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。用哈希:查询一个元素是否出现过,或者是否再一个集合中,就用哈希!常见的哈希结构:set、map、数组。1、哈希表:通过下标访问元素。

2024-04-16 21:55:52 302

原创 力扣-4.15-反转链表&&合并两个有序链表

实例:输入L1=[1,2,4],L2=[1,3,4],输出[1,1,2,3,4,4]实例:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]第二种方法递归法,递归三部曲:确定返回类型、确定终止条件、确定单层循环的逻辑。首先定义一个cur指针,指向头结点,再定义一个pre指着,初始化为NULL。提示:链表中的节点的数目范围是[0,5000]

2024-04-15 22:00:25 95 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除