待完善
文章平均质量分 57
hlc@
这个作者很懒,什么都没留下…
展开
-
【动态规划-最长递增子序列(LIS)】力扣2826. 将三个组排序
一开始我们得到g=[1,2,4,5],然后遇到x=3,替换后g=[1,2,3,5],这时候g就是虚拟的递增子序列,因为很明显nums中没有这么一个递增子序列。接着遇到x=4,替换掉g中的5,g=[1,2,3,4,7]。最后遇到x=6,替换掉了g中的最后一个元素7,g=[1,2,3,4,6],这时候我们的最长子序列才真正变成了[1,2,3,4,6]。举个例子:nums = [1,2,4,5,3,7,4,6]输入:nums = [1,3,2,1,3,3]输入:nums = [2,2,2,2,3,3]原创 2024-10-09 17:32:19 · 784 阅读 · 0 评论 -
【动态规划-最长递增子序列(LIS)】力扣673.最长递增子序列的个数
就说明发现了更长的公共子序列,那么这个时候,我们就重置count[i]为count[j],之所以重置为count[j]是因为count[j]代表着之前以nums[j]结尾的最长公共递增子序列的个数,那么有count[j]个最长公共递增子序列再加上当前的nums[i],就有count[j]种以nums[i]结尾的最长公共递增子序列。然后再继续遍历以nums[i]结尾的最长公共递增子序列,如果发现了有相同长度的公共递增子序列,就加上这个以nums[j]结尾的最长公共子序列的数量count[j]。原创 2024-10-09 01:00:41 · 287 阅读 · 0 评论 -
【数据结构-二维前缀和】力扣1504. 统计全 1 子矩形
既然右下角顶点已经确定,假设当矩形的高也知道,那么顶边的长度就是符合右下角为顶点,高确定的矩形个数。所以我们要做的就是遍历矩阵每个元素为矩形右下角,然后在不断假设高,然后找到在不同高的情况下矩形的顶边最长是多少。我们将每个元素为右下角能构成的矩形数量都计入ans中,最后返回的ans就是所有符合要求全为1的子矩阵数量。输入:mat = [[0,1,1,0],[0,1,1,1],[1,1,1,0]]输入:mat = [[1,0,1],[1,1,0],[1,1,0]]有 2 个 1x3 的子矩形。原创 2024-09-06 13:52:51 · 697 阅读 · 0 评论 -
【数据结构-哈希&&前缀】【滑动窗口】力扣930.和相同的二元子数组
在这个算法中,举个例子[1,0,1,0,1]作为我们的nums,goal = 2。cnt是一个哈希表,用来储存子数组相同的和的数量。给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。有 4 个满足题目要求的子数组:[1,0,1]、[1,0,1,0]、[0,1,0,1]、[1,0,1]输入:nums = [1,0,1,0,1], goal = 2。输入:nums = [0,0,0,0,0], goal = 0。有以上四种情况,所以输出为4。原创 2024-07-30 10:53:43 · 253 阅读 · 0 评论
分享