算法训练
障目叶亦能知秋
从零开始,冲冲冲!!
展开
-
算法训练day16|104. 二叉树的最大深度|559. N 叉树的最大深度
其实目前来说掌握几个递归和层序遍历就差不多,现在刷了这么多题已经很熟悉了。(3小时)原创 2023-03-17 18:21:41 · 222 阅读 · 0 评论 -
算法训练day15|层序遍历|226. 翻转二叉树|101. 对称二叉树
这题过得莫名其妙的,马后炮的想,只有两种情况要加next,一是同一父节点下的左右节点,二是相邻父节点的右节点和左节点,这一切的前提,都是题目给了这是一个完美二叉树。这个代码可以解决上一题,其实层序遍历的时候,能遍历到每一层的所有节点,只需要用一个指针记录pre即可。其实就是遍历所有节点,翻转左右子树。前序中序后序层序遍历都是可以的,但是中序遍历的递归算法不可以。暂时只学层序遍历的迭代法,后面的几个题目都建立在层序遍历的模板上写。层序遍历要每一层分开装到二维数组中。这题看完题解了,明天再来写一遍。原创 2023-03-15 23:47:50 · 201 阅读 · 0 评论 -
算法训练day14|二叉树的递归遍历(迭代先放过)
对于二叉树的三种遍历在数据结构里面已经学的很熟悉了,递归算法也很简单好记。代码也很简单,只需要知道什么时候输出就行。原创 2023-03-14 15:05:21 · 104 阅读 · 0 评论 -
算法训练day13|239. 滑动窗口最大值|347. 前 K 个高频元素
单调队列和优先级队列(大、小顶堆),以前从来没有用过,会非常的不熟悉,慢慢来不着急。(3小时)原创 2023-03-13 06:27:54 · 176 阅读 · 0 评论 -
算法训练day11|20. 有效的括号|1047. 删除字符串中的所有相邻重复项|150. 逆波兰表达式求值
也不算太难把,都是栈的应用,(3小时)原创 2023-03-11 23:05:38 · 138 阅读 · 0 评论 -
算法训练day10|232. 用栈实现队列|225. 用队列实现栈
栈和队列的实现还是比较熟悉的,原理比较简单(2小时)原创 2023-03-10 22:07:01 · 135 阅读 · 0 评论 -
算法训练day9|28. 找出字符串中第一个匹配项的下标|KMP算法(暂时略过)
模式串匹配也不难,就是时间复杂度多一些。一刷KMP暂时过了,全心复试。原创 2023-03-08 22:03:23 · 109 阅读 · 0 评论 -
算法训练day8|344. 反转字符串|541. 反转字符串 II|151. 反转字符串中的单词|剑指 Offer 58 - II. 左旋转字符串
对于字符串,有很多内置函数还是不太熟悉,复制、求长度、反转、复制子串等,多用多熟。(4小时)原创 2023-03-08 21:34:33 · 132 阅读 · 0 评论 -
算法训练day7|454. 四数相加 II|383. 赎金信|15. 三数之和|18. 四数之和
对于三数之和、四数之和这两个题的双指针用法很关键,for循环用来遍历,双指针在有序数组中根据L后移增大和,R左移减小和,从而达到目的。同时,去重的操作很有技巧,找到目标后,下一个数如果与当前数相同,是应该跳过的。(5小时)242. 有效的字母异位词。原创 2023-03-07 20:41:24 · 163 阅读 · 0 评论 -
算法训练day6|242.有效的字母异位词
对于vector来说,如pusk_back是非常好用的函数,用法也简单。对于set和map 的一些主要函数一定要会用,如insert find begin end ,需要注意的是返回值是迭代器的时候的用法。(5小时)原创 2023-03-06 20:40:54 · 84 阅读 · 0 评论 -
算法训练day4|24. 两两交换链表中的节点|19.删除链表的倒数第N个节点| 面试题 02.07. 链表相交| 142.环形链表II
链表有很多能直接转到数组里,用vector实现再链表里不方便的操作,我称之为暴力解hh。对于环形链表的题,主要还是要找到蕴含的关系,之后的代码反而很简单。(4小时)原创 2023-03-06 00:34:31 · 230 阅读 · 1 评论 -
算法训练day3|203.移除链表元素 |707.设计链表 |206.反转链表
昨天卡在设计链表的debug中,没看carl哥的建议在本地IDE上重写main函数属实是太蠢了,debug过程就是找到错误所在,根据错误进行优化,找不到这只bug谈何debug?还是代码能力的不足,要多刷题!不要做无用功啦。(7小时)原创 2023-03-04 22:16:22 · 175 阅读 · 0 评论 -
算法训练day2|977.有序数组的平方|209.长度最小的子数组|59.螺旋矩阵II
今天学习了双指针、滑动窗口和强化了循环不变量。双指针其实挺类似归并排序的,把需要的比较后放入新数组,滑动窗口主要是快指针用来遍历,慢指针用来控制大小,有点像昨天的移除元素的双指针。对于今天的模拟题,看了代码后自己写一遍出来还是晕乎乎的,循环不变量能理解,对于内层循环的起始和终止并没有很好的把握住,对于这一类题目有点畏惧,还是要多刷题。(5小时)原创 2023-03-02 22:55:49 · 183 阅读 · 0 评论 -
算法训练day1|704. 二分查找|27. 移除元素
1、理解了区间边界再来写二分查找回更加清晰,选择一种区间定义才能在边界问题上不出错,注意“循环不变量规则”。2、要知道数组并不能直接删除的,删除数组元素其实就是覆盖,并且长度减一。原创 2023-03-01 17:35:19 · 161 阅读 · 0 评论