Leetcode刷题教程汇总


近期在刷题,记录一下对自己有帮助的教程和材料,以及遇到的一些问题。

穷举,是计算机最擅长的求解方式。
算法,尽可能让计算机聪明地穷举。

一、算法

1. 动态规划

动态规划(dynamic programming, DP)是将一个问题拆成几个子问题,分别求解这些子问题,即可推断出大问题的解。

适用问题
a. 如果给定某一阶段的状态,则在这一阶段以后过程的发展不受这阶段以前各段状态的影响
b. 大问题的最优解可以由小问题的最优解推出

参考教程
讲解得非常好的两个教程。
a. 从现实问题分析动态规划算法意义 https://www.zhihu.com/question/23995189
b. 从应试解题的角度讲解动态规划 https://blog.csdn.net/m0_37907797/article/details/103231054

2. 二叉树

参考教程: https://labuladong.gitbook.io/algo/mu-lu-ye-1/mu-lu-ye-1/er-cha-shu-xi-lie-1
这个教程介绍了二叉树的递归方法的解题框架,思路清晰,但我不赞成作者的这个观点。

把题目的要求细化,搞清楚根节点应该做什么,然后剩下的事情抛给前/中/后序的遍历框架就行了,我们千万不要跳进递归的细节里,你的脑袋才能压几个栈呀。

刚开始跟着这个教程做题的时候,虽然做了好几题,但一直感觉似懂非懂。我大概知道作者的解题思路,但并不理解这个解题框架的作用和意义。
一直到自己尝试跟着算法,一层层推算法的递归过程,我才对这个算法框架有了更深的理解。所以,我觉得最初学二叉树的时候,一定要多画递归树,配合递归树来学习算法框架。

二、测试用例

  1. 首先关注题目信息
    进行算法测试时,首先要看清题目中的各个变量的范围,根据变量的极值进行用例测试。
    题目中的变量范围
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值