子数组的最小值之和(Leetcode 907) 发表于 2022-12-26 | 分类于 刷题记录 , 数组 , 单调栈/单调队列 | | 字数统计: 991 | 阅读时长 ≈ 4 Leetcode 907 题目分析 本题也是一个经典的单调栈,正好可以巩固一下前几天学习的知识点。 阅读全文 »
和至少为 K 的最短子数组(Leetcode 862) 发表于 2022-12-24 | 分类于 刷题记录 , 数组 , 单调栈/单调队列 | | 字数统计: 530 | 阅读时长 ≈ 2 Leetcode 862 题目分析 这个题目有点难度,如果题目中元素的数据范围均为正数,则可以使用滑动窗口来求解,但是本题有负数,因此sliding window是不合适的。那应该怎么求解呢? 阅读全文 »
栈和队列 发表于 2022-12-12 | 分类于 数据结构和算法 , 数据结构部分 | | 字数统计: 996 | 阅读时长 ≈ 3 栈和队列 栈和队列 结构介绍 栈(Stack):栈是一种很常见的数据结构,特点是先进后出(FILO, First In Last Out),意思是先进来的元素后出去,后进来的元素先出去。类似于我们进电梯一样,先进去的人总是被挤在里面,然后最后才能出去。 队列(Queue):队列也是一种很常见的数据结构,特点是先进后出(FIFO, First In First Out),意思是先进来的元素先出去,后进来的元素后出去。类似于我们排队打饭一样,先进去排队的人总是会先打饭。 阅读全文 »
规划兼职工作(Leetcode 1235) 发表于 2022-12-10 | 分类于 刷题记录 , 动态规划 , 二分查找 | | 字数统计: 556 | 阅读时长 ≈ 2 Leetcode 1235 题目分析 本题也是经典的动态规划问题了,其实难度并没有hard的level,小伙伴们想一下如何构造状态转移方程? 阅读全文 »
可能的二分法(Leetcode 886) 发表于 2022-12-07 | 分类于 刷题记录 , 并查集 | | 字数统计: 560 | 阅读时长 ≈ 2 Leetcode 886 题目分析 本题也是大家的老熟人了,但是本题的思维有一些特别,如果能想到关键点,实现逻辑是难不倒大家的。 阅读全文 »
不同的子序列 II(Leetcode 940) 发表于 2022-12-04 | 分类于 刷题记录 , 字符串 , 动态规划 | | 字数统计: 837 | 阅读时长 ≈ 3 Leetcode 940 题目分析 本题的方法容易想到,但是思路不容易想到。我开始做这个题目的时候,也做错了,在下面的分析中会说明错误的原因。 阅读全文 »
统计定界子数组的数目(Leetcode 2444) 发表于 2022-12-01 | 分类于 刷题记录 , 滑动窗口/双指针 | | 字数统计: 1.1k | 阅读时长 ≈ 4 Leetcode 2444 题目分析 本题是第315长周赛的最后一题,其实难度并不大,这种范围性的题目,小伙伴们一定要想到滑动窗口/双指针的做法。 阅读全文 »
创建价值相同的连通块(Leetcode 2440) 发表于 2022-11-28 | 分类于 刷题记录 , 深度优先搜索 , 树 | | 字数统计: 739 | 阅读时长 ≈ 3 Leetcode 2440 题目分析 本题是第89场双周赛的最后一题,也是难度较大的题目,思路很难想到,这里不为难大家,可以直接看一下题解。 阅读全文 »
最小化数组中的最大值(Leetcode 2439) 发表于 2022-11-24 | 分类于 刷题记录 , 模拟 , 动态规划 , 二分查找 | | 字数统计: 1.5k | 阅读时长 ≈ 6 Leetcode 2439 题目分析 本题是第89场周赛的第三题,之前有提到过,见到最大值最小、最小值最大,我们应该首先想到二分查找,小伙伴们能否用二分查找求出本题? 阅读全文 »
使序列递增的最小交换次数(Leetcode 801) 发表于 2022-11-21 | 分类于 刷题记录 , 动态规划 | | 字数统计: 1.2k | 阅读时长 ≈ 5 Leetcode 801 题目分析 小伙伴们看到这个题目能否立刻想到应该使用什么算法?因为用例一定能够满足条件,说明两个数组交换某些元素一定能变成两个严格单调递增的数组。假设两个数组的长度为n,那么长度为n - 1的数组,也一定是单调递增的。因此我们就可以将这个问题拆解成已知长度为n - 1的数组是单调递增的,使得长度n的数组单调递增的最小交换次数。 阅读全文 »