leetcode解题常见思路

(梳理框架主要由up主提供)

前言

  • 解题思路是解题过程中最关键的一步,即使最终没做出来,能大概知道解题思路甚至有多个解题思路也是挽救方法
  • 以下提及题目不止对应技巧一种思路,但建议先按对应思路去解题,再考虑其他思路优化
  • 个人认为最重要的标了★
  • 题目尽量按难度从低到高排序,题目挑选后续也会随着我的刷题经验进行调整

双指针

双指针常用于数组、链表两种线性表(有序)数据结构相关的题,具体又分为

  • 相向双指针:
    • 两个指针一头一尾往中间移动
    • 多应用于数组的连续子序列或两两组合,有规律的缩小范围
  • 单向双指针
    • 两个指针往同一个方向移动(没想到什么场景后续补充吧)
  • 快慢指针:
    • 通常慢指针向前走一步,快指针向前走两步
    • 多用于链表、因为链表无法直接通过索引访问
    • 通常利用快慢指针找到链表的中点或公共节点

881. 救生艇
11. 盛最多水的容器
141. 环形链表

二分法

常用于有序数组,取中点二分后按一定规则只取其中一边再继续二分,多用于查数

704. 二分查找
35. 搜索插入位置
162. 寻找峰值

滑动窗口

常用于连续子序列的长度、统计量例如总和、计数等最优值问题

209. 长度最小的子数组
1456. 定长子串中元音的最大数目

递归★

递归是指一个函数在运行时调用自己,框架如下

def recursion(params):		   #1.函数输入参数
	if params==1:			   #2.递归终止条件
		return 0
	params=params-1
	res=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值