Leetcode刷题阶段性小结01

十月到现在刷了30道题了,做一下阶段小结

题目列表

1两数之和
学会了unordered_map容器的基本操作
2两数相加
这题考察了链表的基本操作,有一个当时没搞懂的点是nullptr,现在明白是空指针的意思,因为null重载调用可能会发生错误
3无重复字符的最长子串
用一个set来判断有没有重复字符,另外用了滑动窗口方法,以当前最长的长度为窗口长度,每次将左指针向右移一位,然后右指针移动能移动的最大距离。
9回文数
这题我错了很多次,主要是一些特例输入太多了,最后题解的return方式很巧妙
7整数反转
这题我也错了很多次,因为32位整数有限制。
4寻找两个正序数组的中位数
这题比较常见的思路是先合并再排序,考虑到本身是有序的,可以衍生出新的做法,每次比较两个数组的第k/2-1个元素,较小者及其前面的数一定不会出现第k小,就可以删了
88合并两个有序数组
就是常见的双指针合并
5最长回文子串
两种思路,我想的是分奇偶数从中间开始往两边盘点,另一种dp的方法是,因为回文子串删去两边后仍然是回文子串,所以可以使用dp。
13罗马数字转整数
用了一个哈希表映射。
6Z字形变换
不管是Z字形还是长方形,按行读入都是每行从左到右读,所以只用保证每行中的对应顺序就可以了。题解用一个goingdown变量控制行数向上还是向下,很巧妙。
8字符串转整数
这题有一个整数判溢是难点。
11盛最多水的容器
双指针法的典型,因为移动长边也不可能使盛水量最大,所以盛水最大值一定在每次移动短边的过程中出现。
面试题 直方图的水量
也是道双指针的题目,与上一题略有不同,因为每个横坐标的存水量取决于左右两边最高高度的较小者以及自身的高度,所以较小的那边可以直接移动。
12整数转罗马数字
没啥好说的,会12题就会这题。
13快速幂
第一种方法递归调用是很典型的递归,第二种方法转二进制很妙,但是不具有什么普适性。
14最长公共前缀
我用的两重循环,也可以用分治法解决。
15三数之和
用排序+双指针解决,排完序之后每次固定第一个数,然后对二三个数用双指针处理
16最接近的三数之和
和上一题差不多。
217存在重复元素
一个集合解决。
53最大子序和
思路是,如果前面的子序和是负数,那我作为后面一个数,不如只上我自己,不要前面了。
350两个数组的交集
我本来以为要用两个哈希表,题解只用了一个哈希表,主要思路是当发现重复元素时,在结果里先插入元素,然后哈希表里减一。
另外可以使用排序+双指针,每次移动小的那方,依次找出两个数组中的相同元素。
121买卖股票的最佳时机
这题非常简单,找个差价最大的就行。
566重塑矩阵
这题就一个地方困扰到我,就是二维vector的初始化,其他还好。
118杨辉三角
初始化二维vector可以只确定行数
17电话号码的所有组合
DFS不太熟,虽然看懂了题解,但是再给我一道不一定写得好,等我把DFS多练几道简单题再二刷一下这题。
36有效的数独
这题是对数据结构的考察,用二维数组来记录数据。
73矩阵置零
题目本身不难,要求的空间复杂度可以通过将矩阵的第一行/第一列作为记录位来实现。
387字符串中的第一个唯一字符
题解用一个哈希表实现,记录元素的第一次出现的下标,如果重复了则记录为-1。最后查找时,排掉-1就行。
383赎金信
两个哈希表解决。
242有效的字母异位词
就是看两个字母集合是不是一样,用一个哈希表实现,一边++一遍–;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值