题目链接

题目描述

image.png
image.png

思路

直接遍历就好

  1. class NumArray {
  2. private int[] num;
  3. public NumArray(int[] nums) {
  4. this.num = nums;
  5. }
  6. public int sumRange(int left, int right) {
  7. int ant = 0;
  8. for (int i = left; i <= right; i++) {
  9. ant += num[i];
  10. }
  11. return ant;
  12. }
  13. }
  14. /**
  15. * Your NumArray object will be instantiated and called as such:
  16. * NumArray obj = new NumArray(nums);
  17. * int param_1 = obj.sumRange(left,right);
  18. */

优化

没想到还有优化。。。。
image.png
image.png

  1. class NumArray {
  2. int[] sums;
  3. public NumArray(int[] nums) {
  4. int n = nums.length;
  5. sums = new int[n + 1];
  6. for (int i = 0; i < n; i++) {
  7. sums[i + 1] = sums[i] + nums[i];
  8. }
  9. }
  10. public int sumRange(int i, int j) {
  11. return sums[j + 1] - sums[i];
  12. }
  13. }