leetcode303区域检索-数组不可变

leetcode303 Range Sum Query - Immutable

Posted by BY on January 25, 2019

前言

新的一年,好好学习

正文

问题来源

本问题来自leetcode上的303题。

问题描述

给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。

示例 1:

给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()

sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3

分析:

type NumArray struct {
    sum []int
}

func Constructor(nums []int) NumArray {
    l := len(nums)
    sN := NumArray{make([]int, l+1)}
    for i := 1; i <= l; i++ {
        sN.sum[i] = sN.sum[i-1] + nums[i-1]
    }
    return sN
}

func (this *NumArray) SumRange(i int, j int) int {
    return this.sum[j+1] - this.sum[i]
}

总结:

勤思考。

结语

不管怎么样好好加油。