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


    June-17-2019

    第一反应是线段树。
    第二反应是我他妈是个傻逼吧,跟线段树有什么关系。
    比较直观的做法就是每个都扫一下,然后按部就班+-。
    另一个做法,update[i]代表从i开始往后都要+几,比如
    [1, 3 ,1]可以标记为update[1] = 1, update[4] = -1,代表1之后要+1,直到加到3为止,所以3后面要减去1,很巧妙。希望能从interval的题里找到相似的应用。

        public int[] getModifiedArray(int length, int[][] updates) {
            int[] changing = new int[length];
            
            for (int[] update : updates) {
                changing[update[0]] += update[2];
                if (update[1] < length - 1) changing[update[1] + 1] -= update[2];
            }
            
            int increment = 0;
            for (int i = 0; i < length; i ++) {
                increment += changing[i];
                changing[i] = increment;
            }
            
            return changing;
        }
    
  • 相关阅读:
    charles使用
    断言
    JDBC Request
    HTTP请求建立一个测试计划
    利用badboy进行脚本录制
    接口测试用例
    Monkey常用命令
    charles安装与使用
    celery配置与基本使用
    图片验证码接口
  • 原文地址:https://www.cnblogs.com/reboot329/p/5935754.html
Copyright © 2011-2022 走看看