• + 0 comments

    Similar solution in C#:

    static long ArrayManipulation(int n, int[][] queries) {    
        var additions = new long[n + 1];
        foreach (var query in queries) {
            var start = query[0];
            var end = query[1];
            var valueToAdd = query[2];
            additions[start] += valueToAdd;
            if (end + 1 < additions.Length)
                additions[end + 1] -= valueToAdd;            
        }        
        long sum = 0;
        long max = 0;
        for (var x = 1; x < additions.Length; x ++) {
            sum += additions[x];
            max = sum > max ? sum : max;
        }
        return max;
    }