力扣经典题解杂记

题型:删除数组指定元素,删除数组重复项,
方法:双指针
模板如下(根据题型调整):
在这里插入图片描述

assign用于复制不同种类的容器:
在这里插入图片描述

轮转数组:反转三次数组即可:
在这里插入图片描述

跳跃游戏2:记录第一跳的左右区间,再记录第二跳的左右区间再…直到区间越界:
在这里插入图片描述

分发糖果:拆分成左规则和右规则分别求出数组,每一项取左右规则的较大值即可:
在这里插入图片描述

String.substr用法:截取字符串:
在这里插入图片描述

最长公共前缀:横向扫描即可:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

string翻转:
在这里插入图片描述

Kmp问题可以直接使用string.find()函数:
在这里插入图片描述

Kmp代码实现:

在这里插入图片描述

二叉树遍历的简单迭代法::
二叉树先序遍历迭代法:(在层序遍历的代码模板上稍微改动一下):注意由于栈先进后出,所以我们先推入右节点,再推入左节点。
在这里插入图片描述

二叉树后序遍历迭代法:(在先序遍历迭代法的代码模板上稍微改动一下):
在这里插入图片描述
在这里插入图片描述

二叉树的中序遍历无法在原先的模板上改动:(代码风格不一样):

在这里插入图片描述

动态规划五部曲:
在这里插入图片描述

口诀:义推初顺印(一推出顺应)
在这里插入图片描述

·01背包问题:(许多问题都是基于01背包问题模型的)
在这里插入图片描述

二维数组法:

在这里插入图片描述

滚动一维数组法:(注意:for循环第二层必须倒序)
在这里插入图片描述

·完全背包问题:每个物品可以取多次(只需要将第二层for循环改为正序即可)
在这里插入图片描述
在这里插入图片描述

面试喜欢考二叉树的基础操作;
递归三部曲:

在这里插入图片描述
在这里插入图片描述

关键点:总油量大于总里程必然能跑完的,只需要遍历一次就可以了
在这里插入图片描述

注意cmp函数的自定义实现
在这里插入图片描述

哈希表的高阶用法
在这里插入图片描述

哈希表的使用(生)
在这里插入图片描述

三数之和双指针法注意去重和越界
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Map.erase(it)和map.erase(key)
在这里插入图片描述

动态规划记录前n项和+哈希表记录
在这里插入图片描述
在这里插入图片描述

使用到了优先队列去自动的维护最大值(注意注释内容,容易犯错)
在这里插入图片描述

使用单调队列可以让插入和删除达到O(1)
在这里插入图片描述

避免犯错的小技巧:1.在草稿纸上画草图2.使用如图中的函数,将头和尾一起传入和传出
在这里插入图片描述

在原链表的每个节点后面插入一个拷贝的节点,random复制完成之后拆分新旧链表即可。
在这里插入图片描述

手撕快排:
在这里插入图片描述
在这里插入图片描述

上题在快排的基础上稍作修改变成快速选择算法,时间复杂度为O(n)
黄金链表翻转函数:(所有的翻转链表题目都基于此段代码)
在这里插入图片描述
在这里插入图片描述

先找到中间节点的前驱,再翻转后一半,在将两半链表错位连接。
在这里插入图片描述

因为回文串天生具有递推的特性,所以采用动态规划。
递推公式:dp[i][j]=(s[i]==s[j])&&(j-i<3||dp[i+1][j-1]);

二分法的两种常见写法:
1.左闭右开
2.左闭右闭

中序遍历迭代形式:一路向左

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

组合问题使用startIndex来去重,排列问题使用used数组去重。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值