zoukankan      html  css  js  c++  java
  • 370. Range Addition

    Assume you have an array of length n initialized with all 0's and are given k update operations.

    Each operation is represented as a triplet: [startIndex, endIndex, inc] which increments each element of subarray A[startIndex ... endIndex](startIndex and endIndex inclusive) with inc.

    Return the modified array after all k operations were executed.

    Example:

    Given:
    
        length = 5,
        updates = [
            [1,  3,  2],
            [2,  4,  3],
            [0,  2, -2]
        ]
    
    Output:
    
        [-2, 0, 3, 5, 3]
    

    Explanation:

    Initial state:
    [ 0, 0, 0, 0, 0 ]
    
    After applying operation [1, 3, 2]:
    [ 0, 2, 2, 2, 0 ]
    
    After applying operation [2, 4, 3]:
    [ 0, 2, 5, 5, 3 ]
    
    After applying operation [0, 2, -2]:
    [-2, 0, 3, 5, 3 ]

     vector<int> getModifiedArray(int length, vector<vector<int>>& updates) {
            vector<int> ret(length, 0);
            for (int i = 0; i < updates.size(); i++) {
                ret[updates[i][0]] += updates[i][2];
                int endIdx = updates[i][1] + 1;
                if (endIdx < length)
                    ret[endIdx] -= updates[i][2];
            }
            for (int i = 1; i < length; i++) {
                ret[i] += ret[i - 1];
            }
            return ret;
        }
  • 相关阅读:
    HDU 1251 统计难题 字符匹配
    mac 安装mysql
    ubuntu git 下添加 ssh
    mac下virtualenv使用
    git-ssh配置和使用
    在PythonAnyWhere上部署Django项目
    ImportError: No module named PIL
    mysql 命令行操作
    ubuntu安装ssh
    常用git命令
  • 原文地址:https://www.cnblogs.com/fripside/p/6081992.html
Copyright © 2011-2022 走看看