- 博客(8)
- 收藏
- 关注
原创 力扣刷题9-动规
3、最长回文子串:遍历长度,窗口向右滑行,每次只要判断两端是否相等即可。初始化在于单独一个字母一定是回文串。4、最长公共子序列:两层遍历,判断字符是否相同。5、编辑距离:两层遍历,判断字母是否相同。
2024-04-03 12:38:24 135 1
原创 力扣刷题8
物品是否有限决定内部的遍历顺序,如果是有限的,则要由大到小遍历,保证上一层的结果不被覆盖。背包容量为总和一半,看能否把背包完全装满(实际上只能装满或在装不满,只要求出最大值,判断其是否等于背包容量即可)。动态规划:利用已有的计算结果来计算(减少冗余),具体表现为通过上一步的结果推算下一步。二维,外层遍历,内层遍历递推(数字i大于数字j);5、乘积最大子数组:依赖i-1;1、*完全平方数:求装满所需最小数量。3、打家劫舍:依赖i-1和i-2;1、爬楼梯:依赖i-1和i-2;2、杨辉三角:依赖i-1;
2024-04-02 13:28:58 167 1
原创 力扣刷题7
4、划分字母区间:维护一个字母数组,记录最有边界。向右遍历,当达到所有字母最后出现的位置实现一次划分。3、跳跃游戏2:保证每次跳跃到最边界处,有边界内所有位置决定下一次跳跃位置,注意最后一个位置不跳跃;1、买卖股票最佳时机:每天保证收益最优(维护收益最大值),全局遍历即可实现最优;2、跳跃游戏:每次跳跃维护可跳跃的最大范围;
2024-03-30 14:11:54 123
原创 力扣刷题5
堆:父节点永远大于(或小于)左右子节点的完全二叉树,也就是说,具有最高(或最低)优先级的节点总是在顶部。堆具有快速的插入和删除操作的优点,通常用于解决一些重要的算法问题。堆可以用于实现优先级队列,如Dijkstra算法、Prim算法等;1、前k个高频元素:在hashMap统计字符频率;用优先级队列进行排序(数组【字符,频率】)。今天刷堆,对堆的概念和用法都不是很了解,先补一下。
2024-03-27 14:01:31 128
原创 力扣刷题4
2、腐烂的橘子:首先遍历并记录新鲜橙子数量和腐烂橙子队列;若存在腐烂橙子和新鲜橙子,则时间+1,并根据腐烂橙子队列进行一次腐烂(将相连的新鲜橙子freshnum--变为腐烂橙子que.add)。1、岛屿数量:顺序遍历所有节点,碰到1淹没相连节点。
2024-03-13 12:07:23 478
原创 力扣刷题3
分四步:找到左子树的最右端点;右子树连接到该节点;2、前序中序构建树:由前序分割中序,由中序分割前序(重点在于前序的分割位置判断)。
2024-03-11 13:30:16 602 2
原创 力扣刷题2
2、验证二叉搜索树:中序遍历,定义前缀节点与当前节点比较,必须保证整个遍历过程完全正确;3、二叉搜索树中的第k小的元素:中序遍历,没搜索到一个元素k递减,直到递减为0则返回;1、有序数组转换为平衡二叉搜索树:不断找重点作为根节点。二分创建左右子节点;4、二叉树的右视图:层序遍历,每一行的最后一个即为看到的节点。经验:变量声明时要考虑初始化。
2024-03-10 17:47:14 411 1
原创 力扣刷题1
3、删除链表倒数第n个节点:使last(null)领先deletePre n+1个节点;使用哑节点泛化头节点。1、s串中包含t串的最小覆盖字串:基本思路是哈希+滑动窗口(没做出来,好几个题解都很麻烦)。2、字符串两数相加:定义重新串,遍历了l1、l2相加;需要处理进位、两数长短不一。4、两两交换链表中的节点:三指针移动,定义哑节点。
2024-03-08 14:53:25 348 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人