Leetcode-3427变长子数组求和

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

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

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;
    }
};
相关推荐
Dream it possible!17 小时前
LeetCode 面试经典 150_链表_旋转链表(64_61_C++_中等)
c++·leetcode·链表·面试
坚持编程的菜鸟19 小时前
LeetCode每日一题——Pow(x, n)
c语言·算法·leetcode
Wenhao.21 小时前
LeetCode LRU缓存
算法·leetcode·缓存·golang
小白菜又菜21 小时前
Leetcode 2273. Find Resultant Array After Removing Anagrams
算法·leetcode·职场和发展
Swift社区21 小时前
LeetCode 409 - 最长回文串 | Swift 实战题解
算法·leetcode·swift
墨染点香1 天前
LeetCode 刷题【139. 单词拆分】
算法·leetcode·职场和发展
Tisfy1 天前
LeetCode 3346.执行操作后元素的最高频率 I:滑动窗口(正好适合本题数据,II再另某他法)
算法·leetcode·题解·滑动窗口·哈希表
熬了夜的程序员1 天前
【LeetCode】94. 二叉树的中序遍历
数据结构·算法·leetcode·职场和发展·深度优先
熬了夜的程序员1 天前
【LeetCode】92. 反转链表 II
数据结构·算法·leetcode·链表·职场和发展·排序算法
景早1 天前
力扣1. 两数之和
数据结构·算法·leetcode