LeetCode 力扣刷题合集
- 尽量保持一天一道吧,后面就不能保证了 …………
- 代码同步于 GitHub ————
1. 两数之和
https://leetcode.cn/problems/two-sum/
还好,不是很难,核心思想就是嵌套循环的遍历
2. 两数相加
https://leetcode.cn/problems/add-two-numbers/
并不觉得这是一道出的好的题目,如果是自己写的话,需要写输入那些,更有逻辑一些。
3. 无重复字符的最长子串
https://leetcode.cn/problems/longest-substring-without-repeating-characters/
- 有大佬的题解写的很妙,我这里就处理的不太好了
我的思路是先把所有元素根据规则提取出来,然后再遍历数组,这样造成资源浪费的问题。
大佬的做法第一步就很妙,他没有过分执着于字符串的数组,而是把输入都转化为 ASCII 码。
这样的话,我们每次遍历的时候,就直接把最长的字符串拿出来了,当遇到相同的时候,遍历的位置加一
判断方式用 indexOf
这个方法,太妙了。
4. 寻找两个正序数组的中位数
https://leetcode.cn/problems/median-of-two-sorted-arrays/
- 它这里要求了时间复杂度比较难
当然如果是我们自己写代码,需要先做个简单的排序。一开始没看到是合并数组,以为只是简单的两个数组拼接,如此一来,思路就错了,要重新开始
这里先做一个合并的工作,再进行判断,简单题;后面看了优化算法,确实厉害
5. 最长回文子串
https://leetcode.cn/problems/longest-palindromic-substring/
对于一个子串而言,如果它是回文串,并且长度大于 22,那么将它首尾的两个字母去除之后,它仍然是个回文串。
例如对于字符串 "ababa"
,如果我们已知 "bab"
是回文串,那么 "ababa"
一定是回文串,这是因为它的首位两个字母都是 a
根据这样的思路,我们就可以用动态规划的方法解决本题。我们用 P(i,j)P(i,j)
表示字符串 ss 的第 ii 到 jj 个字母组成的串(下文表示成 s[i:j]s[i:j]
是否为回文串:
也就是说,只有 S[i+1,j-1]
是回文串,并且 S[i] == S[j]
的时候,S[i,j]
才是回文串。
6. Z 字形
https://leetcode.cn/problems/zigzag-conversion/
挺有意思的一道题目,而且我觉得也不难,可以用很巧妙的算法构造出数据处理。
因为 numRows 始终 -2 就是中间的个数
结合 queue 列并不难,看了力扣大佬的思路,真是牛逼。还有二维数组,或许以前对它很惧怕,现在不应该害怕了啊。。
7. 整数反转
https://leetcode.cn/problems/reverse-integer/
感觉很简单,这里我的思路是将整数先变成字符串,这样一来直接一个循环就出了。但是实际操作的时候遇到了大问题…… 发现无法实现
后面换了一种思维,循环遍历读取,然后做。但是普通的方式对于负数完成不了,所以需要做判断。
- 在这个关隘上面卡了好久,没搞懂是为什么,看了题解才知道会造成溢出的问题……妙
8. 字符串转换整数
- 本文标题:LeetCode 力扣刷题合集
- 创建时间:2022-09-28 14:25:07
- 本文链接:2022/09/28/LeetCode-力扣刷题合集/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!