鏈結class numarray {
public:
vectordata;
numarray(vector& nums) {
data.resize(nums.size());
for(int i=0;i其實一開始沒想那麼多,先直接過了這題easy
發現時間複雜度比較高後考慮優化
字首和a[i]=presum[i]-presum[i-1]
要注意處理i-1,以及題目中sum.size()可以等於0
即這種情況:
["numarray"]
[]class numarray {
public:
vectorpresum;
numarray(vector& nums) {
presum.resize(nums.size());
if(!nums.empty())
presum[0]=nums[0];
for(int i=1;i官方題解的思路是使得presum的大小是nums.size()+1,方便處理i=0的情況同時也避免了nums為空的情況
每日一題 79區域和檢索 陣列不可變
給定乙個整數陣列nums,求出陣列從索引i到 j i j 範圍內元素的總和,包含i j兩點。實現 numarray 類 numarray int nums 使用陣列 nums 初始化物件 intsumrange int i,int j 返回陣列 nums 從索引 i 到 j i j 範圍內元素的總和...
演算法題 303 區域和檢索 陣列不可變
題幹 給定乙個整數陣列 nums,求出陣列從索引 i 到 j i j 範圍內元素的總和,包含 i j 兩點。實現 numarray 類 numarray int nums 使用陣列 nums 初始化物件 int sumrange int i,int j 返回陣列 nums 從索引 i 到 j i j...
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 說明 你可以假設陣列不可變。會多...