
LeetCode 笔记
文章平均质量分 80
摇花手当雨伞
重铸双非荣光,吾辈义不容辞
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 笔记九
LeetCode 笔记九一.解码方法前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.解码方法力扣链接:力扣链接这题可以用动态规划做,定义 dp 数组,dp[i] 的含义表示为字符串从 0 到 i 的解码方法有多少种。遍历字符串 s 同时更新 dp 数组的值。如果 s[i] 的值不为 0,则 s[i] 可以单独解码为一个字母,dp[i]+=dp[i-1] ; 如果他和 s[i原创 2022-07-25 10:16:16 · 313 阅读 · 0 评论 -
LeetCode 笔记八
LeetCode 笔记八一.二叉搜索树与双向链表前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.二叉搜索树与双向链表力扣链接:二叉搜索树与双向链表二叉搜索树的中序遍历是有序的,这点应该很容易想到,所以我们需要在中序遍历的顺序下重新串联起各节点,把二叉搜索树组织成双向链表。使用递归的难点在于每遍历到一个节点时,无法得到上一个节点,节点间的串联操作也就无法进行。关于这个问题,原创 2022-05-30 20:20:22 · 401 阅读 · 0 评论 -
LeetCode 笔记七
LeetCode 笔记七一.滑动窗口最大值前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.滑动窗口最大值力扣链接:滑动窗口最大值单调栈思路,维护一个单调栈,如果后面入栈的数大于栈底部元素,则栈底部元素不可能是当前窗口的最大值,则当前栈底部元素可以从栈中删除。每次都取栈头部元素作为滑动窗口的最大值,但要注意判断栈头部元素是否是当前滑动窗口内元素。class Solution原创 2022-05-20 21:17:59 · 202 阅读 · 0 评论 -
LeetCode 笔记六
LeetCode 笔记六一.乘积小于 K 的子数组前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.乘积小于 K 的子数组力扣链接:乘积小于 K 的子数组这题就一个关键点,懂了这点,这题就会了。首先利用双指针扩展窗口直至当前窗口的乘积位于K的临界值,即再乘上下一个数,乘积会大于或等于K 。然后缩小窗口,即增加左指针的值缩小窗口,因为所有的数都是正数,所以相当于除了一个正数。如原创 2022-05-09 20:51:51 · 609 阅读 · 0 评论 -
LeetCode 笔记五
LeetCode 笔记四一.岛屿数量前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.岛屿数量力扣链接:岛屿数量对广度优先搜索不太熟,所以借这题练习随便熟悉一下。做了之后发现不难。和深度优先搜索一样,广度优先搜索也有模板。每考虑一个元素都以该元素为中心找到它附近所有满足条件的元素并且加入队列中。然后取出队列中一个元素进行一样的操作,直至队列元素为空。解这题的核心思路可以概括原创 2022-05-04 20:31:13 · 225 阅读 · 0 评论 -
LeetCode 笔记四
LeetCode 笔记四一.重建二叉树前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.重建二叉树力扣链接:重建二叉树可以用递归做这题,但要明白如何利用前序遍历与中序遍历构造二叉树。首先取前序遍历的第一个数,以它做二叉树的父节点构造二叉树。然后在中序遍历中找到该数,中序遍历左边的数为该二叉树的左子树,中序遍历右边的数为该二叉树的右子树。到这里,基本的递归模型就构造完成了,接原创 2022-04-26 19:39:22 · 766 阅读 · 0 评论 -
LeetCode 笔记三
LeetCode 笔记三一.缺失的第一个正数前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.缺失的第一个正数力扣链接:缺失的第一个正数这题如果没有空间复杂度的限制,那还是很简单的。但题目却要求空间复杂度为 O(1) 。不能利用额外的空间,那就利用给定数组作为额外空间。具体的方法有两种,一种是利用已有数组作为哈希表,边遍历数组边修改哈希表,存在的数的哈希值置为负数,表示存在原创 2022-04-17 15:54:47 · 507 阅读 · 0 评论 -
力扣笔记----寻找数组中重复的数字
1.题目描述2.思路解析可能大家一开始想到的方法就是找到一个数字,然后将它与数组中的数字一一比较,如果有重复的就将它输出。没有就继续遍历下去。但显然,这样的效率较低。深入思考一下我们会发现如果我们在按序遍历的时候用一个临时数组将前面的元素存储起来,再将之后的元素与这个临时数组中的元素比较。如果该数组中有与这个元素重复的,那么数组nums中也有,就不用与整个数组中的元素比较。如果没有就将这个元素存储在临时数组中。再继续遍历下去。继续优化一下我们可以发现我们没必要将数字的值存储在数组中,只需要做一个标记原创 2021-04-17 16:31:37 · 431 阅读 · 0 评论 -
LeetCode 笔记一
LeetCode 笔记1.最长连续序列前言:主要是记录一些算法题的解题思路与技巧。题目来源:leetcode1.最长连续序列力扣链接:最长连续序列暴力的解法当然是分别以数组中每一个数作为第一个数,找到连续的最长序列,保存以每一个数开始的最长连续序列,取最大值。然而这种解法有很多重复计算。举个例子:有序列 0,2,8,3,9,4,5 。显然最长连续序列是 2,3,4,5 。但在暴力解法的过程以 2 为第一个数的最长序列为 2,3,4,5;以 3 为第一个数的最长序列为 3,4,5;以 4 为第一个原创 2022-03-27 19:54:29 · 4196 阅读 · 0 评论 -
LeetCode 笔记二
LeetCode 笔记二一.最大子数组和前言:主要是记录一些算法题的解题思路与技巧,纯当笔记用。图片与部分代码来源:leetcode图片与部分代码来源:leetcode图片与部分代码来源:leetcode一.最大子数组和力扣链接:最大子数组和子数组,要求是连续数组,所以对于每一个数,都有加入数组组成和或者不加入,自己单独成为子数组两个选择。当加入之前的子数组能使得和变大时,就可以加入,否则就不加入。dp 数组可以保存连续子数组的和,表示从首元素到当前元素的包含当前元素的最大子数组。cla原创 2022-04-02 21:02:29 · 307 阅读 · 0 评论