Leetcode 3355 Zero Array Transformation

题意:给定一个长度为 n的int数组以及一个2D array, 有一个query数组,每个数组里的数Li, Ri代表这个区间的子集区间的数都减1,求这个数组在经过这个query数组之后能否变成全部为0的数组

https://leetcode.com/problems/zero-array-transformation-i/description/

题解:用差分数组可以解决,计算经过这么多个query之后如果数组中所有的值都小于等于0,返回true

差分数组:长度和原数组保持一定

example: 8, 2, 3, 5

查分: 8, -6, 1, 2

如何还原:8, 8+(-6), 8+(-6)+1, 8+(-6)+1 + 2

差分数组求前缀和就是原答案,注意nums0特殊对待

cpp 复制代码
class Solution {
public:
    bool isZeroArray(vector<int>& nums, vector<vector<int>>& queries) {
        int n = nums.size();
        vector<int> sub(n, 0);
        vector<int> arr(n, 0);
        for(int i = 0; i < n; i++) {
            if(!i) {
                sub[i] = nums[0];
            } else {
                sub[i] = nums[i] - nums[i-1];
            }
        }
        
        
        for(auto query: queries) {
            sub[query[0]] -= 1;
            if(query[1]+1 < n) {
                sub[query[1] + 1] += 1;
            }
        }
        for(int i = 0; i < n; i++) {
            if(!i) {
                arr[i] = sub[0];
            } else {
                arr[i] = arr[i-1] + sub[i];
            }
            if ( arr[i] > 0 ) {
                return false;
            }
        }
        return true;
    }
};
相关推荐
leavesleo18 分钟前
DeepSeek 偷偷给你取外号?拆一下 AI 人格化背后的技术
算法
liliangcsdn31 分钟前
skewness收益偏度取负因子背后逻辑的探索
人工智能·算法·机器学习
鹿角片ljp1 小时前
LeetCode 300. 最长递增子序列|从 DP O (n²) 到贪心 + 二分 O (n log n)
算法·动态规划
叠层归一研究院1 小时前
缝合维度:时空3+1结构的拓扑起源
人工智能·算法·机器学习·agi
YXXY3131 小时前
FloodFill算法
算法
OPEN-F1 小时前
C++入门教程:数组、字符串与指针入门
数据结构·c++·算法
林森lsjs1 小时前
零基础吃透二叉树:定义、遍历与高频算法 —数据结构柒
java·开发语言·数据结构·算法·二叉树
船厂电气自动化ai大模型1 小时前
AI大模型与数学·第56课 快速傅里叶变换FFT:DFT高效优化算法,图像、音频、扩散模型工程加速核心工具
数据结构·人工智能·深度学习·算法·机器学习
203号居民1 小时前
【无标题】LeetCode hot 100 —54. 螺旋矩阵
算法
ai产品老杨2 小时前
越界检测算法接入 AI 视频分析平台的流程与误报优化指南
人工智能·算法·音视频