zoukankan      html  css  js  c++  java
  • 0303. Range Sum Query

    Range Sum Query - Immutable (E)

    题目

    Given an integer array nums, find the sum of the elements between indices i and j (ij), 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.

    题意

    给定一个数组,求从下标i到j的元素之和。

    思路

    因为方法可能被多次调用,因而可以用缓存进行优化:另设数组sum,sum[i]表示nums中前i个元素之和。因此i到j的元素之和就可以表示为sum[j + 1] - sum[i]。


    代码实现

    Java

    class NumArray {
        private int[] sum;
    
        public NumArray(int[] nums) {
            sum = new int[nums.length + 1];
            for (int i = 0; i < nums.length; i++) {
                sum[i + 1] = sum[i] + nums[i];
            }
        }
    
        public int sumRange(int i, int j) {
            return sum[j + 1] - sum[i];
        }
    }
    
  • 相关阅读:
    07spring-mybatis整合
    08ssm三大框架整合
    05spring_AOP
    06spring-test
    03spring初始化销毁自动装配
    04spring注解
    01spring简介入门
    02spring_IoC
    09springmvc_mybatis框架整合
    简单的搭建一个SSH框架
  • 原文地址:https://www.cnblogs.com/mapoos/p/13197163.html
Copyright © 2011-2022 走看看