Range Sum Query - Immutable
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Range Sum Query - Immutable相关的知识,希望对你有一定的参考价值。
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) -> -3Note:
- You may assume that the array does not change.
- There are many calls to sumRange function.
想了想怎么可能有这么简单的题
那么重点在这句:There are many calls to sumRange function.
因此要考虑效率,那么自然考虑动态规划
class NumArray { private int[] sums; public NumArray(int[] nums) { sums = new int[nums.length]; for(int i=0;i<nums.length;i++) { if(i==0) sums[i]=nums[i]; sums[i] = sums[i-1]+nums[i]; } } public int sumRange(int i, int j) { if(i==0) return sums[j]; return sums[j]-sums[i-1]; } } /** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */
以上是关于Range Sum Query - Immutable的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 303. Range Sum Query - Immutable