![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
白鹭float.
这个作者很懒,什么都没留下…
展开
-
【算法速刷(8/100)】LeetCode —— 21.合并两个有序链表
使用两个指针顺序遍历两个链表,每次都将最小值的那个加到结果链表上,最后如果两个链表不一样长,就将剩下的接到结果后面。无头结点的情况下,处处都需要进行判空,将初次赋值和其他时候分为两个情况,会比较长。有头结点的时候,无需判断首次赋值,可以节省许多的代码行数和判断。原创 2024-08-14 21:39:28 · 257 阅读 · 0 评论 -
【算法速刷(7/100)】LeetCode —— 200.岛屿数量
这题是典型的深搜题,只需要额外记录每个格子是否被搜索过,然后挨个进行陆地的深度搜索即可。(如果要使用lambda进行递归,需要显式指出变量的模板类型,不能使用auto推导)原创 2024-08-14 19:43:48 · 231 阅读 · 0 评论 -
【算法速刷(6/100)】LeetCode —— 199.二叉树的右视图
该题实际上等于求每一层中的最右边的节点,可以使用队列结合二叉树的层次遍历实现。原创 2024-08-11 12:15:09 · 177 阅读 · 0 评论 -
【算法速刷(5/100)】LeetCode —— 20.有效的括号
不匹配直接返回false。是右括号:检查是否匹配栈顶括号。栈不为空:还有剩余括号,返回false。题目要求比较明晰简洁,编码难度并不算高。栈不为空:进行条件判断。栈为空:无脑允许进栈。栈为空:返回true。使用栈可以快速解答本题。原创 2024-08-06 01:15:14 · 200 阅读 · 0 评论 -
【算法速刷(4/100)】LeetCode —— 155.最小栈
最小栈问题,有许多种办法进行解答,首先需要锁定的条件是要求在实现栈功能之外,要在常数时间内检索最小元素。这样可以避免最小栈始终记录每一层的最小元素,即使新增元素后最小值还是不变,可以节省一定的存储空间。维护一个最小栈,该栈仅在栈为空,或者新入栈元素不大于最小栈的栈顶元素时才会入栈。同理,该栈仅在栈不为空,且出栈元素等于最小栈的栈顶元素时才会出栈。以上操作都要求有O(n)的额外空间来记录栈对应层的最小值状态。一般这种O(1)查找最值都可以用一下方法。在这里说一下最小栈的方式。每天写几题,健康每一天。原创 2024-08-06 01:02:06 · 219 阅读 · 0 评论 -
【算法速刷(3/100)】LeetCode —— 54.螺旋矩阵
关于这一类矩阵题都可以通过模拟的方法进行解答,只是代码复杂的高低不同首先是与Leetcode官方的题解一样的方法。原创 2024-07-31 18:07:26 · 568 阅读 · 0 评论 -
【算法速刷(2/100)】LeetCode —— 49.字母异位词分组
因此,第一个操作要求我们寻找一个标识一组异位词的方法,由于题目所给数据均为独立单词,因此最好的方法是直接对字符串进行排序,一组异位词排序后得到的是相同的字符串。对于第二个操作,为了将相同异位词放入同一个集合,可以创建一个以排序后的字符串作为键的哈希表,而该哈希表的值可以是数组,也可以是下标。在该题目中,算法分为两大操作,第一个操作是确定其是哪个词的异位词,第二个操作是将其放入对应的异位词集合。如果是下标,则可以在操作哈希表时即构造结果数组。以下是使用排序字符串和下标作为键值对的哈希表的实现方法。原创 2024-07-31 03:13:24 · 228 阅读 · 0 评论 -
【算法速刷(1/100)】LeetCode —— 160.相交链表
今天开始我要速通TOP100!—— 沃兹基 · 硕德。原创 2024-07-29 15:11:32 · 295 阅读 · 0 评论