自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 LeetCode T238. 除自身以外数组的乘积

如果知道了i左边所有数的乘积,以及i右边所有数的乘积,就可以算出answer[i]。先计算 suf,然后一边计算 pre,一边把 pre直接乘到 suf[i]中。

2024-06-12 14:20:32 290

原创 LeetCode T169. 多数元素

答案是多数,那么用少数去抵消多数的票一定剩的还是多数,于是得到多数的答案。

2024-06-12 13:55:43 321

原创 LeetCoode T198. 打家劫舍

【代码】LeetCoode T198. 打家劫舍。

2024-06-11 10:41:25 289

原创 LeetCode T200. 岛屿数量

遍历图中所有的位置,如果该位置为1,则向外扩展将与之相连的1全部变为0,记录需要进行扩展的1的个数。

2024-06-11 09:51:43 294

原创 LeetCode T207. 课程表

我们可以把课程想象成结点,课程表为图。所以我们只需检测图中是否存在环便可判断课程是否能修完。

2024-05-30 10:56:02 221 1

原创 LeetCode T208. 实现 Trie (前缀树)

Trie 的每个节点存储了对其子节点的链接(通常是数组或哈希表),每个节点代表一个字符。根节点不包含字符,除根节点外的每个节点都与一个字符相关联。除此之外,节点通常还包含一个标志,表示该节点是否是某个字符串的结束。

2024-05-30 10:02:53 217

原创 LeetCode T215. 数组中的第K个最大元素

【代码】LeetCode T215. 数组中的第K个最大元素。

2024-05-29 17:38:38 188

原创 LeetCode T221. 最大正方形

在这个数字中,连续的 1 就可以看作是正方形的宽,而高度就是 2,因为是 2 个数相与的。要得到正方形,宽和高必须相等,那么就是取宽高中较小的那个作为正方形的边,所以能构成的最大正方形边长为 min(宽,高)=min(1,2)=1。举个例子:对于数字 10101010,将这个数和它左移一位后的数相与,操作1次,这个数就变成 0 了,连续最多的 1只有 1 个;连续的 1 有 3 个,所以宽是 3,高仍然是 2,构成的最大正方形边长为 min(宽,高)=min(3,2)=2。方法二:动态规划思路。

2024-05-29 10:26:58 281

原创 LeetCode T226. 翻转二叉树

利用栈(或队列)遍历树的所有节点node,并交换每个node的左 / 右子节点。递归遍历(dfs)二叉树,交换每个节点的左 / 右子节点。方法二:辅助栈(或队列)

2024-05-28 10:34:00 238

原创 LeetCode T739. 每日温度

从右到左逆序遍历,遇到更大的就存入栈中,没有大的就出栈。

2024-05-28 10:18:35 440

原创 LeetCode T234. 回文链表

【代码】LeetCode T234. 回文链表。

2024-05-28 10:13:06 537

原创 LeetCode T236.二叉树的最近公共祖先

【代码】LeetCode T236.二叉树的最近公共祖先。

2024-05-21 12:17:00 215

原创 LeetCode T160.相交链表

如下式所示,此时指针 A , B 重合,并有两种情况:a+(b−c)=b+(a−c)因此返回 A 即可。

2024-05-21 10:16:55 294

原创 LeetCode T62.不同路径

运用动态规划的思想,当start在m为1或n为1的图形中,只有一种路径。当m,n均不为1时,路径数等于m-1*n加m*n-1的路径之和。为了方便计数,将m*n的矩阵翻转,让每一个格子的位数等于其左边和上边的位数之和。即dp[i][j]=dp[i-1][j]+dp[i][j-1]。

2024-04-25 08:38:25 186 1

原创 LeetCode T56.合并区间

先将原数组按照所有区间的左端点进行排序,遍历数组,比较index和index+1,当有重叠情况时,我们把合并后的数组放在index位置,删除index+1位置。如果没有重叠,index=index+1。直至遍历完,返回该数组。重叠与不重叠的情况共有三种:(已经排过序,intervals[index][0] [1,4]例子:[1,4] [2,3]->[1,4]例子:[1,2] [3,4]

2024-04-25 08:36:56 418 1

原创 LeetCode T55.跳跃游戏

尽可能到达最远位置(贪心)。如果能到达某个位置,那一定能到达它前面的所有位置。

2024-04-23 08:32:35 348

原创 LeetCode T53.最大子数组和

【代码】LeetCode T53.最大子数组和。

2024-04-22 09:32:46 501 3

原创 LeetCode T48.旋转图像

先将矩阵沿主对角线翻转,如 [[1,2,3],[4,5,6],[7,8,9]] 翻转成 [[1,4,7],[2,5,8],[3,6,9]],再左右翻转,如 [[1,4,7],[2,5,8],[3,6,9]] 翻转成 [[7,4,1],[8,5,2],[9,6,3]]。将矩阵竖着解构,如 [[1,2,3],[4,5,6],[7,8,9]] 解构成 [[1,4,7],[2,5,8],[3,6,9]],将每个部分逆序即可。

2024-04-21 15:05:43 463 1

原创 LeetCode T46. 全排列

如果输入列表只包含一个元素,则返回一个包含该单个元素的列表。这是递归算法的基本条件,它确保算法终止并返回正确的结果。我们尝试在纸上写 3 个数字、4 个数字、5 个数字的全排列,相信不难找到这样的方法。来生成剩余部分的所有排列,然后将当前元素附加到每个排列中,形成新的排列。这是通过将当前元素之前和之后的部分连接而得到的。下面是算法的核心部分,用于生成所有可能的排列。总结搜索的方法:按顺序枚举每一位可能出现的情况,已经选择的数字在。最后,一旦所有可能的排列都已生成,我们返回包含所有排列的列表。

2024-04-21 15:03:59 365 1

原创 LeetCode T49.字母异位词分组

注意到,如果把 aab,aba,baa按照字母从小到大排序,我们可以得到同一个字符串 aab。而对于每种字母出现次数不同于 aab的字符串,例如 abb和 bab,排序后为 abb,不等于 aab。所以当且仅当两个字符串排序后一样,这两个字符串才能分到同一组。根据这一点,我们可以用哈希表来分组,把排序后的字符串当作 key,原字符串组成的列表(即答案)当作 value。最后把所有 value 加到一个列表中返回。

2024-04-21 12:52:36 349 2

空空如也

空空如也

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

TA关注的人

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