- 博客(4)
- 收藏
- 关注
转载 栈帧的结构
1.栈帧栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表丶操作数栈丶动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。对于执行引擎来说,在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧。与当前栈帧相关联的方法,称为当前方法。2.局部变量表局部变量表:Local Variables,也被称之为局部变量数组或本地变量表。定义为一
2023-05-22 11:49:53 248 1
原创 环形石子合并问题及四边形不等式优化
环形区间DP本质上还是求解链形区间DP,只是一个有n个节点的环可以拆分成n个不同的链。如果分别计算每个链的结果,那么本题一定会超时。优化策略:将一个链复制一份并连接在其尾部,形成一个2n个节点的“长链”。上述n条不同的链都能在该“长链”中找到。枚举len的时候只需要枚举到len = n即可。对于较小的n,我们还是可以采用DP朴素O(n^3)来做。假设圆形石子长度为n,基于动态规划的问题求解,可以采用集合的方式求解,区间DP问题一般采用二维空间计算。对于问题需要求最大...
2022-05-26 16:27:38 272 1
原创 LC417.太平洋大西洋水流问题
题意:枚举每一个点,看看是否能够从该点开始走,既能走到大西洋又能走到太平洋。解题思路:这道题适合用宽搜来做,枚举每一个点,然后宽搜他周围的点,只能搜高度比他小的,如果其中有两条路,一条路能到达大西洋:x==n-1||y==m-1,另一条能到达太平洋:x==0||y==0,则说明该点是一个可行解。代码及注释如下:typedef pair<int,int> pii;class Solution {public: int n,m; vector&...
2022-05-21 14:32:53 193
原创 LC239.滑动窗口最大值题解
先上题目这道题是一道入门级别的滑动窗口+单调队列题目。如题所示我们只需要维护一个固定大小的窗口,然后找到其中的最大值。暴力方法来做的话就是枚举每一个窗口中的最大值,对于每个窗口线性扫描一遍的时间复杂度是O(k),整体的时间复杂度就是O(n*k),对于该题10^10的复杂度就会超时。用单调队列来做的话,我们只需要每次取出队头元素即可,即时间复杂度是O(1),每个元素最多push一次,pop一次,所以整体的时间复杂度是O(n)。整体可以分为以下四步:1.解决队首已经出窗口的问
2022-05-21 13:40:38 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人