Leetcode - Range Addition

My code:

public class Solution {
    public int[] getModifiedArray(int length, int[][] updates) {
        if (length <= 0) {
            return null;
        }
        int[] ret = new int[length];
        if (updates == null || updates.length == 0 || updates[0].length != 3) {
            return ret;
        }
        
        for (int i = 0; i < updates.length; i++) {
            int start = updates[i][0];
            int end = updates[i][1];
            int step = updates[i][2];
            ret[start] += step;
            if (end + 1 < ret.length) {
                ret[end + 1] -= step;
            }
        }
        
        for (int i = 1; i < ret.length; i++) {
            ret[i] += ret[i - 1];
        }
        
        return ret;
    }
}

reference:
https://discuss.leetcode.com/topic/49691/java-o-k-n-time-complexity-solution

這道題目沒能做出來,直接看的答案。
還是太巧妙了。

Anway, Good luck, Richardo! 09/15/2016

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容