![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法训练营
文章平均质量分 92
ZBWJ
打斗地主3456没有7的自闭小菜呀
展开
-
day11 | 栈与队列 part-3 (Go) | 239 滑动窗口最大值、347 前 K 个高频元素 (好难)
嘿嘿,偷个懒,参考卡哥的:代码随想录( 这也不是打广告啥的吧,就单纯觉得人家的东西好, 省时省力吧)原创 2024-04-17 22:29:55 · 831 阅读 · 0 评论 -
day12-1 | 二叉树 part-1 (Go) | 二叉树的理论基础
二叉树的定义 和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。二叉树中深度优先和广度优先遍历实现方式,我们做二叉树相关题目,经常会使用递归的方式来实现深度优先遍历,也就是实现前中后序遍历,使用递归是比较方便的。而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。二叉树的数组如何遍历呢, 如果。原创 2024-04-17 23:12:46 · 907 阅读 · 0 评论 -
day10 | 栈与队列 part-2 (Go) | 20 有效的括号、1047 删除字符串中的所有相邻重复项、150 逆波兰表达式求值
非常经典的一道题, 在大学课堂上老师就讲过这道题, 对栈的理解及应用, 思路比较清晰,题意其实就像我们在写代码的过程中,要求括号的顺序是一样的,有左括号,相应的位置必须要有右括号。那么将中缀表达式,转化为后缀表达式之后:["4", "13", "5", "/", "+"] ,就不一样了,计算机可以利用栈来顺序处理,不需要考虑优先级了。(1)遍历字符串, 若栈未空,将当前元素加入栈. 栈不空,则对比栈顶元素是否相等,相等就将栈顶元素弹出.(3) 若字符串遍历完, 栈中还有元素,false;原创 2024-04-14 16:13:58 · 688 阅读 · 0 评论 -
day9 | 栈与队列 part-1 (Go) | 232 用栈实现队列、225 用队列实现栈
栈 : 先进后出 队列: 后进先出 老师给的讲解:代码随想录 这个可能适合于 c++的同学理解,我的 go 看这里是有点不明所以.. 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(、、、):说明: 其实我完全理解栈与队列的特性, 先进后出、先进先出嘛, 但是一开始明白这题让干嘛的,在想这是否跟语言有关啊? 下一步直接看题解Go代码, 看了题解才明白,其实我们就是可以利用各种语言提供的数据类型, 去模拟实现栈的一个效果,原创 2024-04-13 16:29:54 · 1179 阅读 · 0 评论 -
day5 | 哈希表 part-1 | 242 有效的字母异位词、349 两个数组的交集、202 快乐数、1 两数之和
文章讲解参考: 代码随想录 核心:一般哈希表都是用来快速判断一个元素是否出现集合里。常见的三种数据结构:数组、set (集合)、map(映射) 想法:其实我一直以为哈希表都是指map(映射)这种数据结构,就是键值对,但是看了文章发现好像不是那么回事(基础太弱,还需深入了解一下),而且每种语言的这些自由的数据结构类型可能也有差异,像go的话就数组、切片、map(Go语言中,一个map就是一个哈希表的引用)。 题目: . - 力扣(LeetCode) 给原创 2024-04-09 19:40:45 · 637 阅读 · 0 评论 -
day4 | 链表 part-2 | 24 两两交换链表中的节点、19 删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142 环形链表II
day4 | 链表 part-2 | 24 两两交换链表中的节点、19 删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142 环形链表II原创 2024-04-07 18:26:13 · 626 阅读 · 0 评论 -
day3 | 链表 part-1 | 203 移除链表元素、707 设计链表、206 反转链表
第一天的链表题,感觉还 ok 吧,概念并不是很难理解,就是那个 707 的题目一开始让我看的很费解,或许理解能力有点差吧, 203和 206 都还算简单,但是如果第一次就要求我用递归做完成这两道题,恐怕还是废了。原创 2024-04-06 18:13:09 · 742 阅读 · 0 评论 -
day2 | 数组 part-2 | 977 有序数组的平方、209 长度最小的子数组、59 螺旋矩阵 II
创建一个快慢指针,快指针往前走,同时计算身后元素的累加结果(第一个 for 循环),直到累加结果大于等于目标值了,就先停下来,等一等我们的慢指针(for 循环),这时计算 slow 和 fast 之间的距离,以及就累加结果减去 slow 对应的元素,看看当前窗口的值是否能够大于目标值....创建一个和原数组等长的新数组、使用首尾双指针,计算对比平方之后的值得大小、将大的值插入新数组的尾部(因为非递减的属性,即使左侧是负数,平方之后也可能会是最大的值)、移动指针、循环....组成的新数组,要求也按。原创 2024-04-05 18:46:26 · 517 阅读 · 0 评论 -
day1 | 数组 part-1 | 704 二分查找、27 移除元素
二分查找、双指针相关题目 704. 二分查找 27. 移除元素 35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置.原创 2024-04-04 09:44:45 · 924 阅读 · 1 评论