首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
leetcode详细题解
windliang
创建于2022-09-04
订阅专栏
包含多解法,网站:https://leetcode.wang
等 2 人订阅
共129篇文章
创建于2022-09-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
LeetCode 力扣 76. 最小覆盖子串
给两个字符串,S 和 T,在 S 中找出包含 T 中所有字母的最短字符串,不考虑顺序。 没有想出来,直接看来了题解,这里总结一下。 用双指针 left 和 right 表示一个窗口。 right 向右移增大窗口,直到窗口包含了所有要求的字母。进行第二步。 记录此时的长度,lef…
LeetCode 力扣 129. 求根到叶子节点数字之和
从根节点到叶子节点的路径组成一个数字,计算所有的数字和。 和 112 题 有些像,112 题是给出一个 sum,然后去找这条路径。但本质上都一样的,只需要对二叉树进行遍历,遍历过程中记录当前路径的和就可以。说到遍历,无非就是 BFS 和 DFS,如果进行 BFS,过程中我们需要…
leetCode 12 Integer to Roman
把数字转换成罗马数字,正常情况就是把每个字母相加,并且大字母在前,小字母在后,上边也介绍了像 4 和 9 那些特殊情况。 这个是自己的解法,主要思想就是每次取出一位,然后得到相应的罗马数字,然后合起来就行。 时间复杂度:num 的位数 ?log_{10}(num)+1?所以…
LeetCode 30. Substring with Concatenation of All Words
给定一个字符串 s ,给定 n 个单词 word,找出所有子串的开始下标,使得子串包含了给定的所有单词,顺序可以不对应。如果有重复的单词,比如有 [ " foo " , " foo " ] 那么子串也必须含有两个 " foo ",也就是说个数必须相同。 首先,最直接的思路,判断…
LeetCode 力扣 62. 不同路径
机器人从左上角走到右下角,只能向右或者向下走。输出总共有多少种走法。 求 ( 0 , 0 ) 点到( m - 1 , n - 1) 点的走法。 (0,0)点到(m - 1 , n - 1) 点的走法等于(0,0)点右边的点 (1,0)到(m - 1 , n - 1)的走法加上(…
LeetCode 力扣 83. 删除排序链表中的重复元素
给定一个链表,去重,每个数字只保留一个。 按偷懒的方法,直接在 82 题的基础上改,如果没做过可以先去看一下。之前是重复的数字一个都不保留,这道题的话要留一个,所以代码也很好改。 82 题由于我们要把所有重复的数字都要删除,所有要有一个 pre 指针,指向所有重复数字的最前边。…
leetCode 3 Longest Substring Without Repeating Characters
给定一个字符串,找到没有重复字符的最长子串,返回它的长度。 简单粗暴些,找一个最长子串,那么我们用两个循环穷举所有子串,然后再用一个函数判断该子串中有没有重复的字符。 时间复杂度:两个循环,加上判断子串满足不满足条件的函数中的循环,O(n³)。 空间复杂度:使用了一个 set,…
LeetCode 力扣 42. 接雨水
黑色的看成墙,蓝色的看成水,宽度一样,给定一个数组,每个数代表从左到右墙的高度,求出能装多少单位的水。也就是图中蓝色正方形的个数。 这是我最开始想到的一个解法,提交后直接 AC 了,自己都震惊了。就是先求高度为 1 的水,再求高度为 2 的水,再求高度为 3 的水。 整个思路就…
LeetCode 力扣 37. 解数独
给定一个数独棋盘,输出它的一个解。 从上到下,从左到右遍历每个空位置。在第一个位置,随便填一个可以填的数字,再在第二个位置填一个可以填的数字,一直执行下去直到最后一个位置。期间如果出现没有数字可以填的话,就回退到上一个位置,换一下数字,再向后进行下去。 空间复杂度:O(1)。 …
LeetCode 力扣 67. 二进制求和
两个二进制数相加,返回结果,要注意到字符串的最低位代表着数字的最高位。例如 "100" 最高位(十进制中的百位的位置)是 1,但是对应的字符串的下标是 0。 开始的时候以为会有什么特殊的方法,然后想着不管了,先按第二题两个十进制数相加的想法写吧。 时间复杂度:O(max (m,…
LeetCode 力扣 90. 子集 II
78题升级版,大家可以先做 78 题。给定一个数组,输出所有它的子数组。区别在于,这道题给定的数组中,出现了重复的数字。 直接根据 78 题的思路去做。 这个比较好改,我们只需要判断当前数字和上一个数字是否相同,相同的话跳过即可。当然,要把数字首先进行排序。 根据78题解法二修…
LeetCode 力扣 35. Search Insert Position
给定一个有序数组,依旧是二分查找,不同之处是如果没有找到指定数字,需要返回这个数字应该插入的位置。 这道题比较简单,在二分查找的基础上,只要想清楚返回啥就够了。想的话,就考虑最简单的情况如果数组只剩下 2 5,target 是 1, 3, 6 的时候,此时我们应该返回什么就行。…
LeetCode 24. Swap Nodes in Pairs
题目描述(中等难度)给定一个链表,然后两两交换链表的位置。解法一迭代首先为了避免单独讨论头结点的情况,一般先申请一个空结点指向头结点,然后再用一个指针来遍历整个链表。先来看一下图示:point是两个要
LeetCode 力扣 52. N皇后 II
和上一题一样,只不过这次不需要返回所有结果,只需要返回有多少个解就可以。 我们直接把上道题的 ans 的 size 返回就可以了,此外 currentQueen.size ( ) == n 的时候,也不用去生成一个解了,直接加一个数字占位。 参考这里。 既然不用返回所有解,那么…
LeetCode 力扣 57. 插入区间
和上一道可以说是一个问题,只不过这个是给一个已经合并好的列表,然后给一个新的节点依据规则加入到合并好的列表。 对应 56 题的解法一,没看的话,可以先过去看一下。这个问题其实就是我们解法中的一个子问题,所以直接加过来就行了。 时间复杂度:O(n)。 空间复杂度: O(n), 里…
LeetCode 力扣 134. 加油站
把这个题理解成下边的图就可以。 每个节点表示添加的油量,每条边表示消耗的油量。题目的意思就是问我们从哪个节点出发,还可以回到该节点。只能顺时针方向走。 考虑暴力破解,一方面是验证下自己对题目的理解是否正确,另一方面后续的优化也可以从这里入手。 考虑从第 0 个点出发,能否回到第…
leetCode 9 Palindrome Number
判断是不是回文数,负数不是回文数。 把 int 转成字符串,然后判断是否是回文串做就可以了,缺点是需要额外的空间存储字符串,当然题目也告诉了不能这样,所以 pass 。 在第 7 道题我们写了倒置 int 的算法,这里当然可以用到了,只需要判断倒置前后相不相等就可以了。 我们只…
LeetCode 23. Merge k Sorted Lists
k 个有序链表的合并。 我们用 N 表示链表的总长度,考虑最坏情况,k 个链表的长度相等,都为 n 。 简单粗暴,遍历所有的链表,将数字存到一个数组里,然后用快速排序,最后再将排序好的数组存到一个链表里。 时间复杂度:假设 N 是所有的数字个数,存到数组是 O(N),排序如果是…
LeetCode 力扣 58. 最后一个单词的长度
输出最后一个单词的长度。 直接从最后一个字符往前遍历,遇到空格停止就可以了。不过在此之前要过滤到末尾的空格。 时间复杂度:O(n)。 空间复杂度:O(1)。 时隔多天,又遇到了一个简单的题,没什么好说的,就是遍历一遍,没有 get 到考点。
LeetCode 力扣 93. 复原IP地址
给一个字符串,输出所有的可能的 ip 地址,注意一下,01.1.001.1 类似这种 0 开头的是非法字符串。 很类似于刚做过的 91 题,对字符串进行划分。这个其实也是划分,划分的次数已经确定了,那就是分为 4 部分。那么就直接用回溯的思想,第一部分可能是 1 位数,然后进入…
下一页