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;
    }
};
相关推荐
星空露珠18 小时前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
happygrilclh19 小时前
高压高频电源的pid算法
算法
格林威19 小时前
Baumer相机铸件气孔与缩松识别:提升铸造良品率的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·算法·安全·计算机视觉·堡盟相机·baumer相机
葫三生19 小时前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
Evand J19 小时前
【MATLAB例程】无人机三维路径规划|A*,RRT(快速随机树算法), APF(人工势场法)算法对比|可自定义起终点、障碍物坐标。附下载链接
算法·matlab·无人机·astar·路径规划·rrt·apf
少许极端19 小时前
算法奇妙屋(二十七)-全排列与子集问题
算法·剪枝·回溯·递归
sali-tec19 小时前
C# 基于OpenCv的视觉工作流-章20-仿射变换
图像处理·人工智能·opencv·算法·计算机视觉
u01092727119 小时前
实时数据流处理
开发语言·c++·算法
独自破碎E19 小时前
【滑动窗口+计数】LCR015找到字符串中所有字母异位词
数据结构·算法
Trouvaille ~19 小时前
【Linux】线程同步与互斥(一):线程互斥原理与mutex详解
linux·运维·服务器·c++·算法·线程·互斥锁