摘要: 如果是和最大,那么直接一直加上去和 0 取个 max 好了,因为正值对后续一定是正贡献 现在考虑积,是不是也是类似 部分类似,如果全部都是正值,那么是类似的 但是有负值 负数的影响是什么呢,就是这里是小的,但是下次再乘个负数它就正了 所以这里要同时维护最小值和最大值 当然只维护两个元素自然也可以 但 阅读全文
posted @ 2026-03-19 20:34 rdcamelot 阅读(2) 评论(0) 推荐(0)
摘要: 栈如果用 vector 去模拟的话实际上也是往一个数组的末尾不断插入元素 如果出栈的话也就是删除末尾的元素 因此这题的目的实际上就是访问数组的前缀最小值,而且不会有修改操作 于是只要在每次添加元素的时候记录此时的最小值即可 采用两个 stack 或者 stack 内存储的是 pair 之类的类型均可 阅读全文
posted @ 2026-03-19 20:16 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 不能使用除法,那么分析要求等价于什么 如果不除,那么就是前后区间的元素乘积 可以使用前缀和来维护,这样可以 O(1) 得到我们想要的结果 class Solution { public: vector<int> productExceptSelf(vector<int>& a) { int n = 阅读全文
posted @ 2026-03-19 18:06 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 关键是进阶的 O(1) 空间复杂度的摩尔投票法(https://leetcode.cn/problems/majority-element/solutions/2362000/169-duo-shu-yuan-su-mo-er-tou-piao-qing-ledrh) 一个关键的出发点是类似于二分查 阅读全文
posted @ 2026-03-19 15:09 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 动态规划 子问题显然,因为每个数组当作是最后一个位置的话都是一个范围更小的子问题 每个位置只有打劫或不打劫两种 如果打劫的话,前面一家就不能打劫 所以每个位置都要维护 0/1 两种状态,方便后面转移 且 dp 的特点就在于当前最优,所以我们每次只需要从 i - 1 来转移就可以 class Solu 阅读全文
posted @ 2026-03-19 00:34 rdcamelot 阅读(2) 评论(0) 推荐(0)
摘要: 第一时间想到的倒是并查集搞这种合并的形式 但是并没有道理,因为我们是要看相当于有哪几个连通块 用搜索的方式去做,每找到一个 1 就把它能走到的 1 都走了,并标记为访问过 class Solution { public: int numIslands(vector<vector<char>>& a) 阅读全文
posted @ 2026-03-18 17:37 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 核心点就是不要真想着反转所以考虑从末尾开始怎么去做 就是走一步反转一步 因为链表只能记录当前相邻的节点,所以从头节点开始逐个改变它们的 next /** * Definition for singly-linked list. * struct ListNode { * int val; * Lis 阅读全文
posted @ 2026-03-18 17:18 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 拓扑排序 课程之间存在依赖关系,只有所有前置课程修完了才能学习下一个课程 建立依赖边,用入度来表示还有多少课程没学习 入度为 0 的课程可以开始学习 要注意队列的函数,加入元素使用 push,队列的元素使用 front,删除用 pop class Solution { public: bool ca 阅读全文
posted @ 2026-03-18 17:08 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 板子,但是得自己写板子() 具体介绍就不过多介绍了,放一下代码 class Trie { private: struct Node { Node* next[26]; bool isEnd; Node() : isEnd(false) { for (int i = 0; i < 26; i++) { 阅读全文
posted @ 2026-03-17 23:55 rdcamelot 阅读(2) 评论(0) 推荐(0)
摘要: 主要是时间复杂度有所限制 如果单纯从第 k 大角度出发的话,排序,红黑树,或者是用两个堆都可以去解决 但 O(n) 的话使用的是快速查找,解决的是找某个最终下标上的元素的问题 从区间的角度来说,快速查找的思路类似于二分,每次操作完后变化操作的区间 每次选择一个 pivot ,把大于 pivot 的放 阅读全文
posted @ 2026-03-17 23:07 rdcamelot 阅读(2) 评论(0) 推荐(0)