303. 구역과 검색 - 수조는 변할 수 없습니다

인덱스 i에서 j(i≤j) 범위 내의 원소의 총계를 구하고 i, j 두 점을 포함합니다.
예:
주어진nums = [-2, 0, 3, -5, 2, -1], 구화 함수는sumRange ()
sumRange(0,2)->1 sumRange(2,5)->-1 sumRange(0,5)->-3 설명:
너는 수조가 변할 수 없다고 가정할 수 있다.sumRange 메서드가 여러 번 호출됩니다.
이전 개수의 합을 저장하기 위한 dp 그룹을 새로 만듭니다.
class NumArray {
public:
    NumArray(vector<int> nums) {
        dp.resize(nums.size()+1,0);
        for(int i=1;i<=nums.size();++i){
            dp[i] = dp[i-1]+nums[i-1];
        }
    }

    int sumRange(int i, int j) {
        return dp[j+1]-dp[i];
    }
    private: 
    vector<int> dp;
};

/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(i,j);
 */

좋은 웹페이지 즐겨찾기