zoukankan      html  css  js  c++  java
  • [LC] 303. Range Sum Query

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.

    Example:

    Given nums = [-2, 0, 3, -5, 2, -1]
    
    sumRange(0, 2) -> 1
    sumRange(2, 5) -> -1
    sumRange(0, 5) -> -3
    

    Note:

    1. You may assume that the array does not change.
    2. There are many calls to sumRange function.

    Solution 1:

    class NumArray {
    
        int[] prefix;
        public NumArray(int[] nums) {
            if (nums == null || nums.length == 0) {
                return;
            }
            prefix = new int[nums.length];
            prefix[0] = nums[0];
            for(int i = 1; i < nums.length; i++) {
                prefix[i] = prefix[i - 1] + nums[i];
            }
        }
        
        public int sumRange(int i, int j) {
            if (i == 0) {
                return prefix[j];
            }
            return prefix[j] - prefix[i - 1];
        }
    }
    
    /**
     * Your NumArray object will be instantiated and called as such:
     * NumArray obj = new NumArray(nums);
     * int param_1 = obj.sumRange(i,j);
     */

    Solution 2:

    class NumArray {
        int[] prefix;
        public NumArray(int[] nums) {
            prefix = new int[nums.length + 1];
            for (int i = 0; i < nums.length; i++) {
                prefix[i + 1] = prefix[i] + nums[i];
            }
        }
        
        public int sumRange(int i, int j) {
            return prefix[j + 1] - prefix[i];
        }
    }
    
    /**
     * Your NumArray object will be instantiated and called as such:
     * NumArray obj = new NumArray(nums);
     * int param_1 = obj.sumRange(i,j);
     */
  • 相关阅读:
    (四)使用SecureCRTPortable 连接虚拟机 安装jdk
    (三)配置本地YUM源
    (二) 配置 centos6.7
    docker学习
    linux磁盘情况查看处理
    日志文件切割
    已有项目创建git
    微擎绑定开放平台后依然拿不到唯一id?
    php7 安装mongodb扩展
    mongodb 学习
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12008635.html
Copyright © 2011-2022 走看看