Prefix
Mamba_ZJP
这个作者很懒,什么都没留下…
展开
-
状态压缩:LeetCode 1542
题目链接:https://leetcode-cn.com/problems/find-longest-awesome-substring/ 这道题感觉和前缀和的巧妙运用这两个题目有点像,也是子串(子数组)满足某个条件,这里是子串里至多有一个数字出现过奇数次,其余都是偶数次,然后求符合这个条件的子串的最大长度。 首先思考下暴力该怎么做:遍历每个数字,然后统计每个数字出现的次数,对于符合条件的子串必定是这样s[0...i−1]s[i...j]s[0...i-1]s[i...j]s[0...i−1]s[i.原创 2020-08-11 20:30:38 · 307 阅读 · 0 评论 -
前缀和的巧妙运用:LeetCode 560/1546
题目链接:https://leetcode-cn.com/problems/subarray-sum-equals-k/ class Solution { public: int subarraySum(vector<int>& nums, int k) { //2e4 unordered_map<int, int> rec; rec[0] = 1; int sum = 0, ans = 0; for .原创 2020-08-11 15:51:46 · 234 阅读 · 0 评论 -
前缀和/差分
前缀和 顾名思义:用某一个数组来记录数组a前i项和,这个还可以用来求区间[l,r]的和:s[r]-s[l-1](因为第l项也在区间内) 话不多说,直接上例题:LeetCode 5393 首先,暴力搜索,TLE。 很明显,左边拿的+右边拿的=k张,且拿了前面的才能那拿面的,有很明显的前缀和后缀性质,枚举左边拿的张数i,对应的右边只能拿k-i张,线性时间。 且枚举后缀的时候有个技巧,并不需要真正的后...原创 2020-04-26 21:35:45 · 467 阅读 · 0 评论