力扣汇总
文章平均质量分 85
记录力扣刷题过程。
林立可
加点油呢!路还有那么长!
展开
-
【力扣刷题】(五)回溯专题
回溯算法,乱杀组合、排列、子集问题!不看不知道。。。原创 2021-12-06 14:27:19 · 716 阅读 · 0 评论 -
【力扣刷题】(四)贪心专题
贪心1,贪心的算法思想贪心本质是求解局部最优,从而全局最优。assert:动规的原因是两个限制条件是互相干扰的,而贪心的子条件相互独立,所以才能确保局部最优到全局最优。因为有很多情况,局部最优不一定是全局最优,这个前提就是全局可以等价于局部的累加。2,力扣题型376,摆动序列https://leetcode-cn.com/problems/wiggle-subsequence/摆动序列就是一个上下波动的序列,如果不符合就要采用子序列的定义删掉这个波值,只不过这里的删掉不是真正的删掉数组元素,原创 2021-11-21 09:42:39 · 434 阅读 · 0 评论 -
【力扣】秒杀力扣区间重叠问题
秒杀力扣区间重叠问题两个区间重叠,有三种临界情况,但他们都满足一定的特点,比如第一区间的尾部一定大于或大于等于第二区间的头部(first>second)。我们可以按照这种情况区分重叠问题。此外,我们通常需要先对区间排序。这样比较才是确保有序的正确的。可以按照头部或是尾部从小到大排序。二维数组的排序方式: Arrays.sort(people, new Comparator<int[]>() { @Override public int co原创 2021-11-16 09:31:18 · 989 阅读 · 0 评论 -
【力扣刷题】(三)动态规划专题
动态规划1,动态规划适合什么问题?求最值,而且核心是穷举思想。首先,穷举可能会非常复杂;所以你需要发现重叠的子问题,然后使用备忘录模式dp数组的形式优化。也就是你需要找到最优子结构,通过子问题才能拆解出复杂问题。要想正确的穷举,你还需要找出我们的状态转移方程。动态回归的优化:可以只用dp存储转态转移方程即可。(状态压缩)自顶向下:从大问题开始,向下分解,如递归树;自底向上:从基本问题开始,向上推导,如动态规划。动规五部曲:明确dp数组的下标及对应的值的意义找到子问题得到递推公式明确原创 2021-10-27 10:53:09 · 194 阅读 · 0 评论 -
【力扣刷题】(二)链表专题
链表1,链表链表是一种结点相连的数据结构,其中典型的结点构成包括一个存储数据的 data 域和一个存储执行下一结点的指针域 next。双链表则将指针域细化为前驱节点 pre 和后驱节点 next。循环链表则将尾节点和头节点相连。因此,链表的分类按照实现方式包括单链表、双链表、循环链表。链表的设计原则是增删快,查询慢。更多链表知识,可以参考:Java 中的链表:链表在 Java 中的实现是2,力扣题型2.1,203移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链原创 2021-08-22 22:18:23 · 240 阅读 · 0 评论 -
【力扣刷题】(一)数组专题
数组专题1,数组介绍数组是一种存储空间为连续型的数据结构。因此,数组在删除元素时较为复杂,查询元素时非常便捷。而且删除的逻辑本质上是一种覆盖。2,力扣题型2.1,704二分查找题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4原创 2021-06-25 22:00:32 · 427 阅读 · 1 评论