lc题集解答

按答题模式分类

动态规划

数组

可能的做法有以下:
分治、前缀和+map、贪心、dp、滑动窗口,单调栈,双指针,还有奇葩的是用链表做。

字符串

  • 43. 字符串相乘 两数相乘视为两个多项式相乘
  • 剑指 Offer 45. 把数组排成最小的数解释2 证明最优解任意两数间的顺序性. 先根据最优解特性, 证明相邻两数间的顺序性。再用反证法, 推导传递性.
    • 如果相邻两数a+b < b+a,则为了得到最小数,a应当排在b左侧,即a < b。因为如果排在右侧,得到ba,那么将其颠倒为ab,可以得到更小的数。
    • 如果有相邻3个数a、b、c,其中a < b, b < c(此处<号代表自定义的比较),那么有a < c,即排列为abc。因为如果不是,排列就是cba,有cba<bca<bac<abc,相继颠倒相邻两个数进行换位,从而一路得到更小的数。
    • 同理可解决179. 最大数 , 用自定义__lt__实现, 注意边界条件即可

树/堆

其它

  • 468. 验证IP地址
  • 剑指62 约瑟夫环 分为两步,首先从简单入手,以i个人到i-1个人的情况作讨论,并假设m<i,从而得出i-1到i的递推公式。然后把m>=i时的情况归约到m<i。
  • 836. 矩形重叠 记住一句话口诀,一个矩形的左下角,在另一个矩形的右上角的左下方。如果要证明,可以证明它的逆否命题。
  • 260. 只出现一次的数字 III num&-num可以取数字最右侧的1。int digit = xor == Integer.MIN_VALUE ? 1 : xor & (-xor);。这个位可以将所有数字分为两组,然后让所有数字分在两组作异或。

按主题分类

括号类问题:
20. 有效的括号
22. 括号生成
32. 最长有效括号
301. 删除无效的括号
678. 有效的括号字符串
推荐看宫水三叶题解。https://leetcode.cn/problems/valid-parenthesis-string/solution/you-xiao-de-gua-hao-zi-fu-chuan-by-leetc-osi3/ 。

拓展阅读

二分查找如何写对

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值