自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Go语言实现文件的复制

import ("bufio"//缓存"fmt""io""os"

2024-04-27 15:44:52 202

原创 回溯算法(DFS)

此类类型的题目都可以套此模板。

2023-10-19 22:48:00 87 1

原创 回溯算法1:组合

【代码】回溯算法1:组合。

2023-10-16 23:14:13 69 1

原创 代码随想录训练营day19● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

3.700.二叉搜索树中的搜索。2.617.合并二叉树。

2023-10-11 19:55:34 77

原创 代码随想录训练营day17|513.找树左下角的值|112. 路径总和 |06.从中序与后序遍历序列构造二叉树

迭代法,轻松解决。

2023-10-10 17:16:23 55 1

原创 代码随想录训练营day17|110.平衡二叉树 | 257. 二叉树的所有路径 |404.左叶子之和

本题需要区分二叉树的高度和深度的问题,两者的使用的遍历方式不同。高度需要后序遍历,深度则需要用前序遍历。采用的是后序遍历,先找出所有的左叶子数,然后再相加。2. 二叉树的所有路径。

2023-10-09 12:35:57 41 1

原创 代码随想录训练营day15|104.二叉树的最大深度|111.二叉树的最小深度| 222.完全二叉树的节点个数

递归逻辑:先求它的左子树的节点数量,再求右子树的节点数量,最后取总和再加一 (加1是因为算上当前中间节点)就是目前节点为根节点的节点数量。与上题类似,容易按部就班写成这样。3.完全二叉树的节点个数。1.二叉树的最大深度。2.二叉树的最小深度。

2023-10-07 23:25:50 54 1

原创 代码随想录训练营day14|层序遍历|226.翻转二叉树 |101.对称二叉树

依旧递归三部曲:需要考虑左空右非,坐非右空,两边值不一样的情况。然后采用的是后序遍历,得出值。1.层序遍历 (共10题,类型差不多,只讲一题)递归虽然简洁,但详细理解所有的代码不太容易。本题采用的是前序遍历。

2023-10-07 23:02:57 61 1

原创 代码随想录训练营day13|递归遍历|迭代遍历

三大遍历全用递归实现,需要加强这方面的学习以其为例,详细说明。递归的三部曲:确定递归函数的返回值和参数:其次确定递归的终止条件:最后确定单层递归的逻辑:1.3.后序遍历迭代遍历2.1.前序遍历前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。为什么要先加入 右孩子,再加入左孩子呢? 因为这样出栈的时候才是中左右的顺序。动画如下: 2.3.后序遍历再来看后序遍历,先序遍历是中左右,后续遍历是左右中,那

2023-10-07 22:34:51 36 1

原创 day011|20. 有效的括号|1047. 删除字符串中的所有相邻重复项|150. 逆波兰表达式求值

本题一上来不急着写,需要先考虑几种不符合条件的情况:第一种情况,字符串里左方向的括号多余了 ,所以不匹配。第二种情况,括号没有多余,但是 括号的类型没有匹配上。第三种情况,字符串里右方向的括号多余了,所以不匹配。如此分析之后,代码的剩下的内容就十分清楚易懂了。碰到左括号就进栈相应的右括号,若栈的top元素与s 数组当前遍历的元素相同,就出栈。

2023-10-03 13:45:49 34

原创 代码随想录训练营day10|232.用栈实现队列 |225. 用队列实现栈

仅仅详解出栈功能(使用的是1个队列):将队列的尾前的元素弹出,再压入。直到队尾元素成为队前元素,将其弹出,便模拟了出栈这个过程。队列的输出:没什么不同,直接输入到instack。过程与图片相似,使用两个栈,方向相反。大体上与1相似,除了出栈功能。

2023-10-02 11:47:37 72 1

原创 代码随想录训练营day08 |344.反转字符串| 541. 反转字符串II● 剑指Offer 05.替换空格| 151.翻转字符串里的单词|剑指Offer58-II.左旋转

1..反转字符串1..反转字符串。

2023-09-27 19:46:06 236 1

原创 代码随想录训练营day07|第454题.四数相加II| 383.赎金信 |三数之和 /四数之和

赎金信。

2023-09-26 18:39:06 301 1

原创 代码随想录训练营day06|242.有效的字母异位词|两个数组的交集|202. 快乐数|1. 两数之和(哈希表)

定义一个数组叫做record用来上记录字符串s里字符出现的次数。需要把字符映射到数组也就是哈希表的索引下标上,再遍历 字符串s的时候,这样就将字符串s中字符出现的次数,统计出来了。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。那么最后检查一下,最后如果record数组所有元素都为零0,说明字符串s和t是字母异位词,return true。

2023-09-25 22:29:19 407 1

原创 day04|24. 两两交换链表中的节点 | 19.删除链表的倒数第N个节点| 面试题 02.07. 链表相交|142.环形链表II

难度不大,主要需要记住每个结点的连接顺序(最好画个图,防止搞反)

2023-09-24 12:24:02 586 1

原创 代码随想录训练营day03|203.移除链表元素|707.设计链表|链表的翻转

该方从头结点开始遍历,先用while循环查找头结点的元素是否符合要求(注意:不能使用if,防止删除一次后的新头结点也满足要求),然后再开始遍历。删除元素时,需遍历到这个结点的前一位pre,并定义一个临时储存变量k,pre->next=k->next;返回新链表,即完成。该方法与第一种方法类似,唯一不同的是定义一个虚拟的新头结点,直接开始遍历(省去了while删去头结点的步骤)。

2023-09-22 23:31:15 689

原创 代码随想录day02| 有序数组的平方|长度最小的子数组|螺旋矩阵II

若下标为i,j之间数组元素值的和(sum)不小于target,sum的值减去nums[i],i向后移一位,以此类推。需要注意每次循环的起始位置和终止位置一致,比如都是左闭右开或者左开右闭(否则会出现循环紊乱),循坏次数为n/2;若下表为fast的元素的值大于slow的,将fast元素的值放入新数组,fast同时右移1位;比较下标为fast和slow的数组值的平方,并定义一个与原数组大小相同的新数组。若n为奇数,则需给nums[n/2][n/2]赋值。将数组所有元素的值平方,并使用sort函数排序。

2023-09-21 19:47:20 851

原创 代码随想录训练营day01|力扣704二分查找|力扣27移除元素

if (nums[middle] > target) right 更新为 middle,因为当前nums[middle]不等于target,去左区间继续寻找,而寻找区间是左闭右开区间,所以right更新为middle,即:下一个查询区间不会去比较nums[middle]while (left < right),这里使用 < ,因为left == right在区间[left, right)是没有意义的。从前往后开始遍历,如果nums[i]==val,则覆盖该数组元素,整体向前移一位。定义一个快指针和慢指针。

2023-09-20 17:48:00 1105 1

空空如也

空空如也

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

TA关注的人

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