摘要: 感觉就是树dp 树的自相似结构天然适合 dp 这种形式 dp[i] 表示以 i 为根节点的子树中的最大路径 考虑转移,那么就是 dp[i] = max 子节点 + a[i] 同时维护下答案,因为路径可以是通过 i 这个根节点,这样转折一次得到比较长的路径 /** * Definition for a 阅读全文
posted @ 2026-03-24 00:42 rdcamelot 阅读(2) 评论(0) 推荐(0)
摘要: 因为时间复杂度是 O(n) ,所以不能排序后做 相当于只能遍历数组 那么想遍历的时候我们能做什么 那不就是相当于枚举当前元素作为起点的话连续序列的长度是多少吗 如果每个都这样去判断,那么首先,我们需要一个哈希表去 O(1) 的查询这个元素是否在数组中,接着,复杂度是类似于 \(O(n^2)\) 的 阅读全文
posted @ 2026-03-23 23:07 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 想到使用 manacher 先放代码,板子来自蒋老师,https://chuna2.787528.xyz/WIDA/p/17633758.html#马拉车manacher std::vector<int> manacher(std::string s) { std::string t = "#"; fo 阅读全文
posted @ 2026-03-22 22:13 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 一个数和其自身的异或和是 0 因此对数组中的所有元素进行异或,剩下的那个数就是只出现了一次的数 class Solution { public: int singleNumber(vector<int>& a) { int sum = 0; int n = a.size(); for (int i 阅读全文
posted @ 2026-03-22 21:08 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 1 <= s.length <= 300 可以用比较暴力的思路 比如枚举每一个转移点 也就是说我们令 dp[i] 表示到 i 为止能不能组合出来 每次转移就是从前面所有的位置转移过来,判断这个字串是否在字典中 vector 如果要查找的话只能使用 count(a.begin(), a.end(), 阅读全文
posted @ 2026-03-22 20:50 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 看过 II 这题就没什么要说的了 返回 bool 类型即可 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), ne 阅读全文
posted @ 2026-03-22 19:29 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 比较简单的想法就是使用哈希表,存储见过的链表节点 然后考虑空间 O(1) 的做法 比较容易想到使用快慢指针,如果它们能遇到那就说明链表存在环 但是这样我们只找到了环上的一个节点,并不保证这就是环的入口 这时候考虑从步数入手 都是从 head 出发,fast 走了 2x , slow 走了 x,两个的 阅读全文
posted @ 2026-03-22 19:26 rdcamelot 阅读(2) 评论(0) 推荐(0)
摘要: 逐个分析需求 首先 get 的操作显然能够想到使用哈希表 而 put 的话,如果只是修改还是可以用哈希表去解决的 但是有一个逐出最久未使用的关键字,这就想到要使用队列了 如果用数组去实现这个队列的话每次删除将是 O(n) ,不符合 O(1) 的时间复杂度 修改 O(1) 的话想到使用链表 又因为修改 阅读全文
posted @ 2026-03-21 22:42 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 不会,这种平时不做的数据结构确实是弱项啊 题解参考:https://leetcode.cn/problems/sort-list/solutions/13728/sort-list-gui-bing-pai-xu-lian-biao-by-jyd 时间复杂度 O(nlogn) 想到二分,进而想到归并 阅读全文
posted @ 2026-03-21 21:43 rdcamelot 阅读(1) 评论(0) 推荐(0)
摘要: 如果是和最大,那么直接一直加上去和 0 取个 max 好了,因为正值对后续一定是正贡献 现在考虑积,是不是也是类似 部分类似,如果全部都是正值,那么是类似的 但是有负值 负数的影响是什么呢,就是这里是小的,但是下次再乘个负数它就正了 所以这里要同时维护最小值和最大值 当然只维护两个元素自然也可以 但 阅读全文
posted @ 2026-03-19 20:34 rdcamelot 阅读(5) 评论(0) 推荐(0)