zoukankan      html  css  js  c++  java
  • 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:
    You may assume that the array does not change.
    There are many calls to sumRange function.
    

      

    public class NumArray {
    	private static int[] nums;
    	private static int[] sums;
        public NumArray(int[] nums) {
            if(nums==null)
    			return ;
    		this.nums = nums;
    		sums=new int[nums.length];//注意为什么不nums=sums,这样的话跟着变,这样的话原始数组也会变,这样不科学
    		if (nums.length == 1) {
    			sums[0] = nums[0];
    			return;
    		}
    		for (int x = 1; x < nums.length; x++) {
    			sums[x] = sums[x - 1] + nums[x];
    		}
        }
    
        public int sumRange(int i, int j) {
            return sums[j]-sums[i]+nums[i];
        }
    }
    
    
    // Your NumArray object will be instantiated and called as such:
    // NumArray numArray = new NumArray(nums);
    // numArray.sumRange(0, 1);
    // numArray.sumRange(1, 2);
    

      

  • 相关阅读:
    UVA 10066 The Twin Towers
    UVA 10192 Vacation
    hdu 5018 Revenge of Fibonacci
    hdu 5108 Alexandra and Prime Numbers
    UVA 10252
    UVA 10405最长公共子序列
    数塔
    hdu 2602
    面向对象(五)
    面向对象(三)
  • 原文地址:https://www.cnblogs.com/kydnn/p/5148626.html
Copyright © 2011-2022 走看看