JSON

[LeetCode] Range Sum Query Immutable 墨迹js

字号+ 作者:H5之家 来源:H5之家 2015-11-11 18:47 我要评论( )

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] sum

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.
  • 解题思路

    考虑到要多次调用sumRange()函数,因此需要把结果先存起来,调用时就可以直接返回了。最开始考虑的是用dp[i][j]来直接存储i到j之间元素的和,但是内存超出限制。于是考虑用dp[i]来存储0到i之间元素的和,0到j的和减去0到i-1的和即为所求。

    实现代码 NumArray { private int[] dp; public NumArray(int[] nums) { dp = new int[nums.length]; int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]; dp[i] = sum; } } (int i, int j) { return i == 0 ? dp[j] : dp[j] - dp[i - 1]; } }

    作者:u011331383 发表于2015/11/10 15:09:10 原文链接

    阅读:0 评论:0 查看评论

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评