leetcode每日一题 -- 3355. 零数组变换 I

最开始,我直接模拟题目操作,但超时了

于是想到了直接记录[可以操作区间]下标的方式,定义一个等大的数组,只在对应[左右区间下标]位置上+1,这样最终只需要遍历一次数组,即可得到最终数组,然后和原整数数组比对,<则无法变换为0

但写着写着感觉有点无从下手,于是看了题解

思路

差分数组

其实思路和我的一样,但处理方式更好,因为它对于右边界是-1

代码

cpp 复制代码
class Solution {
public:
    bool isZeroArray(vector<int>& nums, vector<vector<int>>& queries) {
        // 差分数组,多出来的一个元素用于处理边界
        vector<int> deltaArray(nums.size() + 1, 0);
        for (int k = 0; k < queries.size(); ++k) {
            int i = queries[k][0], j = queries[k][1];
            ++deltaArray[i];
            --deltaArray[j + 1];
        }
        // 计算前缀和
        vector<int> arr;
        int sum = 0;
        for (auto delta : deltaArray) {
            sum += delta;
            arr.push_back(sum);
        }
        for (int i = 0; i < nums.size(); ++i) {
            if (arr[i] < nums[i]) {
                return false;
            }
        }
        return true;
    }
};
相关推荐
luckys.one4 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
~|Bernard|5 小时前
在 PyCharm 里怎么“点鼠标”完成指令同样的运行操作
算法·conda
战术摸鱼大师5 小时前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
Christo35 小时前
TFS-2018《On the convergence of the sparse possibilistic c-means algorithm》
人工智能·算法·机器学习·数据挖掘
好家伙VCC6 小时前
数学建模模型 全网最全 数学建模常见算法汇总 含代码分析讲解
大数据·嵌入式硬件·算法·数学建模
liulilittle8 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
bkspiderx9 小时前
C++经典的数据结构与算法之经典算法思想:贪心算法(Greedy)
数据结构·c++·算法·贪心算法
中华小当家呐11 小时前
算法之常见八大排序
数据结构·算法·排序算法
沐怡旸11 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
一只懒洋洋12 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类