自定义博客皮肤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)
  • 收藏
  • 关注

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

今天主要学习了二叉树各种遍历方法的运用,对这种类型的题有了较清晰的思路和想法。不过进度还需要继续追赶。这道题需要掌握递归的方法和深度的定义,还要搞清楚深度和高度的区别。然后就可以用代码实现了。这道题和上道题相似,不过需要注意更多的细节,并且要搞懂最小深度的思路。这几道题其实都差不多,主要就是让我们搞清楚和适应二叉树的各种结构方法。递归可能有一点抽象,不过可以用纸画一画帮助理解。其实要注意的细节就是最小深度的定义也就是。跟着“递归三部曲”来走就不会出错。

2023-04-24 23:13:01 97

原创 代码随想录算法训练营第14、15天 | 二叉树的遍历方法 及LeetCode 226. 翻转二叉树 101. 对称二叉树

二叉树是一个常用的数据结构,想要使用这种数据结构首先需要掌握的就是遍历二叉树的方法。遍历二叉树的方法有常见的四种:前序遍历、中序遍历、后序遍历、层序遍历。前三种我首先掌握的是递归法,最后一种就不是递归法了。今天步入了二叉树的领域,对我来说也是空白的领域。基本掌握了基础的知识,对我来说这种新的知识更可以让我感受到代码的魅力。那么学会之后在代码随想录里有十道关于层序遍历的题,都是可以刷的。层序遍历,顾名思义,就是一层一层从左到右的进行遍历。这道题我用的是前序遍历,理解思路后挺简单的。是的,规律已经显而易见了。

2023-04-22 19:09:56 97

原创 代码随想录训练营第11天 | LeetCode 20. 有效的括号 1047. 删除字符串中的所有重复项

遍历数组的元素,然后左边的括号都存入栈中,右边的元素如果匹配就删除栈顶元素。这两道题都不难,但是逆波兰表达式确实没有搞懂,还需要再多学习一下。这道题其实也就是上一道题的思路,只不过要考虑清楚字符串的顺序。这道题是典型的利用栈的特殊结构来做的,很常见的题。这样的写法就需要在最后把字符串进行反转。有几种特殊情况需要考虑清楚。

2023-04-16 22:15:07 100

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

今天除了做完这两道题之外,还多做了一些题,对于栈和队列的数据结构有了清晰的认识,也比较熟练的掌握了stack和queue的各种用法。题目已经告诉了我们要用到两个栈来实现此题,那么思路也就清晰了,一个栈用来存入,另一个栈用来输出。写出来还是很简单的,只需要脑中思路清晰,对于栈和队列的结构清晰,要用代码来实现还是很容易的。这道题将上一道题反过来了,不过思路还是挺简单的,这两道题都是考察对于栈和队列的操作使用。这道题考察了对与栈的基本操作的使用,对于算法的要求不高,重要的是使用方法。

2023-04-14 23:14:18 92

原创 代码随想录训练营第八天 | LeetCode 344. 反转字符串 541. 反转字符串|| 151. 翻转字符串里的单词 剑指offer 05. 替换空格 58-II 左旋转字符串

如果i + k > s.size(),那么说明已经到了字符串的尾部并且剩下的字符不足k个,那么就将剩下的字符都进行互换就好了。先遍历一遍字符串,找有多少个空格,然后用resize函数来对数组进行扩容,需要增加空格的数量乘2的容量,然后定义出双指针,从字符串的尾部开始向头部进行重新录入。今日做完字符串的各种题,相当于在复习前面几天的算法的同时也往我的脑子里灌输了新的思路算法,今天的题很多也都适合后面再回来做。这道题算是第一题的进阶题了,多加了一个条件,不过只要搞清楚如何处理新加的条件就可以了。

2023-04-13 19:40:40 67

原创 代码随想录代码训练营第七天 | LeetCode 454. 四数相加II LeetCode 383. 赎金信 LeetCode 15. 三数之和 LeetCode 18.四数相加

也就是说,只要杂志里有的字母就录入数组a中,然后再看ransomNote需要什么,只要要那么就减一,最后就只要看数组a中有没有比0小的元素,只要有就返回false,没有就返回true。使用一个unordered_map来存储前两个数组的各个元素之和,然后再将这些元素和和另外两个数组的元素和做比较。今天在最后两道题中收获颇丰,掌握了很多的查重细节,也更加了解了哈希表的用法,哈希表还是重在思想,思想很重要。这道题可以使用哈希法来进行编程,不过具体的正确思路还是看了代码随想录的文章才有的。看似很复杂,其实不然。

2023-04-11 22:31:31 129

原创 代码随想录训练营第六天 | LeetCode 242. 有效字母异位词 LeetCode 349. 两个数组的交集 LeetCode 202. 快乐数 LeetCode 1. 两数之和

先定义一个unordered_set类型的容器,然后将第一个数组里的元素录入进去,然后通过find函数若没找到就返回set.end()的特点来判断另一个数组里有没有一样的元素,有的话就用insert函数插入另一个容器中,没有就继续遍历。今天新学习了哈希表,学习了unordered_map和unordered_set的几个用法,昨完今天的题之后感觉之前遇到的一些题好像并不是这么难了。因为我在哈希表这块领域的知识是空白的,所以在做今天的题之前去查阅了一些哈希表,然后看了题解脑中才有了思路。

2023-04-10 20:23:47 192

原创 代码随想录训练营第四天 | LeetCode 24. 两两交换链表中的节点 LeetCode 19. 删除链表第N个节点 LeetCode 160. 链表相交 LeetCode 142. 环形链表

需要注意的是,他的意思是一样的地址,也就是一样的节点,那么只要有一个节点一样那后面的也就永远一样了。然后就看到了这个特别妙的方法,先找出两个链表的长度,然后进行比较,长的那一个就遍历到后面的长度与短的那个链表一样的长度。很清晰的了解了很多链表的算法,特别是最后一道题,让我看到了算法和数学思想的联系,很厉害,今天的题也很值得再重复做。我们假设head到环的入口有x个节点,再假设环的入口到相遇点有y个节点,再假设相遇点到环的入口的节点有z个。那么这就是一个公式了,当n == 1的时候就可以看出x == z。

2023-04-08 23:43:01 131 1

原创 代码随想录训练营第三天 | LeetCode 203. 移除链表元素 LeetCode 707. 设计链表 LeetCode 206. 反转链表

至于常规情况的处理方法,就是遍历至目标值所在节点的前一个节点,然后让一个临时的节点保存要删除的节点,代码表现就是r = p->next,其中r是临时的节点,p->next就是要删除的节点。今天进入了新的一章链表,前两道题让我又回忆起了关于链表操作的各种细节,以后如果要复习链表就先做这两道题巩固基本功,第三道题让我对于链表的算法有了一点模糊的感觉,后面还得多刷链表的题才可以摸索出链表的常用算法。这道题考察到了几乎所有对于链表的操作,由于我的C++还在学习中,所以这道题是使用的C语言写的。

2023-04-07 21:07:20 86 1

原创 代码随想录训练营第二天 | LeetCode 977.有序数组的平方 LeetCode 209.长度最小的子序列 LeetCode 59.螺旋矩阵II

我想的思路是填入的时候把一行填入完了之后再进行下一行的填入,但是这样就会使代码更为复杂。正确的思路是填入到该行元素的个数减一的位置,至于该行的最后一个元素的填入就交给下一个for循环来做。今天收获了一道以后可以常常拿出来练手感的题,也就是螺旋矩阵这道题,还有就是巩固了昨天练习过的双指针法,能够更熟练的使用这种方法了。再定义一个尺寸和给出的数组一样大的数组,让另定义一个指针指向该数组的尾部,这道题就迎刃而解了。在代码随想录的文章中很形象的使用了滑动窗口这个词,不过这道题的本质还是使用快慢指针来做。

2023-04-06 21:51:35 140 1

原创 代码随想录算法训练营第一天| LeetCode 704. 二分查找、LeetCode27. 移除元素

然后因为找的是相对的中间值且防止溢出,middle就等于left + ((right - left)/2)。后面的思想就和前面类似了,因为left和right都是有意义的,所以赋值时是middle + 1或者middle - 1。第一天真正意义上的进行刷题,拓宽了我再算法题上近乎空白的思维,脑中多了很多想法。对于指针的双指针的用法更精进了一步。这道题的精髓就是双指针的用法,一前一后指针分别承载不同的功能。慢指针(slow):记录删除目标值后的新数组成员,快指针(fast):寻找目标值,并将其覆盖。

2023-04-05 20:47:10 1026 3

空空如也

空空如也

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

TA关注的人

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