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;
    }
};
相关推荐
fqq38 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展
半夏微凉半夏殇10 小时前
x11与weston对比,优先选哪个
leetcode·均值算法·eclipse
爱编程的小新☆15 小时前
【LeetCode】从递归到 Flood Fill:5 道题吃透 DFS 的选择、回溯与标记
java·算法·leetcode·深度优先·回溯·flood fill
evans在进步15 小时前
LeetCode 33:搜索旋转排序数组——Java 两阶段二分查找详解
java·python·leetcode
alphaTao16 小时前
LeetCode 每日一题 2026/8/10-2026/8/16
算法·leetcode
Forever Nore17 小时前
LeetCode 13 罗马数字转整数 - 按规则处理
linux·服务器·leetcode
旖旎夜光18 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
ZC跨境爬虫19 小时前
LeetCode 27. 移除元素(双指针详解 + Java Python 多解法对比)
java·python·leetcode
LuminousCPP1 天前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表
Forever Nore1 天前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode