- 博客(9)
- 收藏
- 关注
原创 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 114 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 293 1
原创 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 272 1
原创 LeetCode T46. 全排列
如果输入列表只包含一个元素,则返回一个包含该单个元素的列表。这是递归算法的基本条件,它确保算法终止并返回正确的结果。我们尝试在纸上写 3 个数字、4 个数字、5 个数字的全排列,相信不难找到这样的方法。来生成剩余部分的所有排列,然后将当前元素附加到每个排列中,形成新的排列。这是通过将当前元素之前和之后的部分连接而得到的。下面是算法的核心部分,用于生成所有可能的排列。总结搜索的方法:按顺序枚举每一位可能出现的情况,已经选择的数字在。最后,一旦所有可能的排列都已生成,我们返回包含所有排列的列表。
2024-04-21 15:03:59 230 1
原创 LeetCode T49.字母异位词分组
注意到,如果把 aab,aba,baa按照字母从小到大排序,我们可以得到同一个字符串 aab。而对于每种字母出现次数不同于 aab的字符串,例如 abb和 bab,排序后为 abb,不等于 aab。所以当且仅当两个字符串排序后一样,这两个字符串才能分到同一组。根据这一点,我们可以用哈希表来分组,把排序后的字符串当作 key,原字符串组成的列表(即答案)当作 value。最后把所有 value 加到一个列表中返回。
2024-04-21 12:52:36 236 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人