Leetcode-3427变长子数组求和

依旧前缀和,3427. 变长子数组求和

是一个套路,数组有len个元素,设置一个len+1个元素的数组cnt,cnt0 = 0,cnti+1 = cnti+numsi,避开了left为0时需要讨论的情况。left = x, right = y,最后结果 = cnty+1 - leftx,可以画个图理解下更直观。

C++代码

cpp 复制代码
class Solution {
public:
    int subarraySum(vector<int>& nums) {
        int len =nums.size();
        vector<int> cnt;
        cnt.resize(len+1);
        int ans = 0;
        for(int i = 0; i <len ;i++){
            cnt[i+1] = cnt[i]+nums[i];
        }
        for(int i = 0; i<len;i++){
            ans+=cnt[i+1]-cnt[max(0,i-nums[i])];
        }
        return ans;
    }
};
相关推荐
Nuanyt1 小时前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
春弦_3 小时前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
凯瑟琳.奥古斯特6 小时前
力扣1015C++解法技巧
c++·算法·leetcode·链表·职场和发展
文丑颜不良啊6 小时前
LeetCode626~650题目解析
java·leetcode
文丑颜不良啊7 小时前
LeetCode601~625题目解析
java·leetcode
文丑颜不良啊7 小时前
LeetCode651~675题目解析
java·leetcode
Xin7708 小时前
LeetCode 78. 子集(回溯法)
leetcode
INGNIGHT8 小时前
151 · 买卖股票的最佳时机 III(序列dp)
数据结构·算法·leetcode
圣保罗的大教堂8 小时前
leetcode 3644. 排序排列 中等
leetcode
Tisfy10 小时前
LeetCode 3644.排序排列:不对则与(脑筋急转弯)
数据结构·算法·leetcode·题解·位运算