摘要:
想到使用 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
阅读(3)
评论(0)
推荐(0)

浙公网安备 33010602011771号