303 區域和檢索 陣列不可變

2022-05-09 03:51:10 字數 755 閱讀 1089

difficulty:簡單

給定乙個整數陣列  nums,求出陣列從索引 _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 方法。

solution 1. brute force

​class numarray 

int sumrange(int i, int j)

return count;

}private:

vectorm_vec;

};

思路
別說了,渣渣只有這種想法,但是我居然通過,說好的超時呢?

solution 2. 字首和
class numarray ;
思路
字首和,對於sum(i,j)之間的計算可以轉換為sum(0,j+1)的和sum(0,i)之差。而後者可以在一開始就計算出來。

303 區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 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 說明 你可以假設陣列不可變。會多...

303 區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 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說明 你可以假設陣列不可變。會多次...

303 區域和檢索 陣列不可變

給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i j 兩點。實現 numarray 類 numarray int nums 使用陣列 nums 初始化物件 int sumrange int i,int j 返回陣列 nums 從索引 i 到 j i j 範圍...