自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 525. 连续数组

例如这个用例 [0,0,1,0,0,0,1,1], 答案应该是 nums[2,7]区间长度为6的数组, 可以用上面的方式进行计算。* , 为了避免这个错误, 我们初始将 Map 中添加一对 {前缀和:索引}, 即 put(0,-1), 0代表前一个不存在的元素前缀和为 0, -1 代表不存。* 之前已经出现过, 就用当前的索引 i2 - 之前的索引 i1 即可求出本次得到的子数组长度,。* 给出一组测试用例:[0,0,0,1,1,1,0,0,1], 用指针 i 扫描一遍数组, 来观察每个位置上的可能情况。

2024-02-21 15:44:43 807

原创 力扣:670. 最大交换

要使两个数进行交换以后产生最大交换,我们可以想到,其中一个交换的数所在的位数越大,更新后的数也会越大,那么基本思路就可以变为:找到位置靠前的可交换数,向其后面的所有数找到最大的一个,然后进行交换即可。这里往后找最大的数,便体现了。

2024-02-18 21:43:41 290 1

原创 力扣:513. 找树左下角的值

而深度优先时,前序遍历,把拟最深层,左边的节点下来,不断更新 max < depth ,同一层深度的节点,由于前序遍历只会记录最左边的。若采用广度优先,要注意先从右边遍历再从左边,那么最后一个出队的节点就是最深层的最左结点。

2024-02-14 21:00:34 339 1

原创 力扣:54. 螺旋矩阵

首先我们定义四个指针 即上下左右,根据状况,来移动指针,比如添加完第一横行后,我们需要将top指针加1,从矩阵最后一列的第二个元素开始添加。此外我们再获取矩阵元素的总个数,然后一个一个取走,当全部被取完便退出循环。这题没有什么绕弯子的地方。基本上按照题目顺着写代码就行。

2024-02-10 17:36:04 307 1

原创 递归心得。

当我们拿到一个递归题目时,要明确一个递归的主体,就是这个递归的主体要怎么构造,然后再去想边界条件返回值等等。即:1.确定主体 -> 2.考虑边界条件(或者说是每次递归的出口)和 返回值。124. 二叉树中的最大路径和为例。非空节点的最大贡献值等于节点值与其子节点中的最大贡献值之和(对于叶节点而言,最大贡献值等于节点值)。空节点的最大贡献值等于 0。

2024-02-07 12:50:36 395 1

原创 力扣:113. 路径总和 II

方法的参数开始为根节点和目标值,根节点左右递归,目标值在递归的基础上进行累减,当满足目标值累减到当前节点刚好为零,并且当前节点刚好为叶子节点时,res 动态的添加以满足要求的path.指每次减去最后一个节点,进行回溯,以筛选所有满足的情况。从根节点到叶子节点的带权路径之和等于目标值的情况,才会将这一整个数值列表添加到集合。那么我们不妨反过来思考:目标值减去这一条路径的带权路径之和刚好为零,则添加到集合中。1.我们在外部定义一个数组链表集合,和一个储存该链表集合的集合。

2024-02-07 11:35:53 314 1

原创 力扣:337. 打家劫舍 III

情况 二:未选根节点,那么将左子节点同左子节点的子节点进行比较 取得较大值(右子节点同理),左右两边的较大值相加得到最大的情况。情况 一:选择了根节点,将所有被选中的子根节点与根节点相加。但倘若我们自己乱选,并没有规律可循,实现起来相当困难。最后取两种情况产生的值更大者返回得出结果。

2024-02-06 15:11:40 316 1

原创 力扣:129. 求根节点到叶节点数字之和

这一题是一道很典型的 深度优先遍历题。

2024-02-06 14:36:10 406 1

原创 力扣:3. 无重复字符的最长子串

/根据i,j指针下标来确定所分割的子串长度。if(temp.charAt(n)==s.charAt(j)){ //判断字串中是否有与将要新加入的字符重复。情况 二: 子串中有一个字符与新要加入的字符相等,则更新i的位置 下标为 n+1,这时则直接退出内层循环。3.在循环中,再定义一个循环利用 n指针将子串中的每一个字符与将要新加入的字符进行比对,情况 一:子串的每一个字符都与新要加入的字符不同,则加入新字符,进入下一轮循环。//更新最长子串的长度。//重复则将 i指针移动到 n的前一个位置 即 n+1。

2024-02-05 16:31:20 353 1

原创 力扣:655. 输出二叉树(详细解答)

虽然我们可以知道这一题的大致思想可以利用 深度优先搜索,但还是有很大细节。heightmheight + 1n不难看出,行数应表示 一颗满二叉树的,而列数应表示 满二叉树的而题目中 的高度显然不是 从根节点开始计算,也即为其子树的高度。比如一颗高度为 3(包括根节点)的满二叉树,的结点个数为 7.而题目中根据其公式:2 ^ (height + 1) -1 = 7 解得height = 2. 也就是指其子树的高度。搞清楚这一点就好办很多。

2024-02-04 21:07:53 1020 1

原创 二叉树的 前中后序遍历

我们知道,一个二叉树的节点可以含有左右子结点如root.left 和 root.right。

2024-02-04 13:27:25 341 1

原创 力扣41. 缺失的第一个正数

/直到找到一组相邻的数满足 后一个数与前一个数的差值不为一,返回前一个数加上 1的值。if(nums[len-1] < 0){ //如果最大的数为负数,则直接返回 1.(相邻的数相等 或 差值为 1 ,则指针后移)while(nums[e]<0){ //让指针指向指向第一个非负数。if(len==0){ //如果数组长度为0,返回 1.//让 e指针比 s指针块一步,好做比较。//相邻的数相等 或 差值为 1 ,则指针后移。2.如果最大的数为负数,则直接返回 1.1.如果数组长度为0,返回 1.

2024-02-04 13:02:46 332 1

空空如也

空空如也

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

TA关注的人

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