1480. Running Sum of 1d Array (一維數組的動態和)

更新於 發佈於 閱讀時間約 1 分鐘


英文版點我中文版點我


↑看個小廣告,支持好內容↑



題目想輸出的是「從頭加到逐項的累積值」,走到哪就加到哪,其實就是我們常稱的 Prefix Sum,但該如何取得呢?


✖ 壞解法

// 每次都要從頭算起,雙重迴圈 O(n^2)

第一項=nums[0]
第二項=nums[0]+nums[1]
第三項=nums[0]+nums[1]+nums[2] ...


⭕ 好解法

// 保存了先前算到哪,每次往下加一項

第一項=nums[0]
第二項=第一項+nums[1]
第三項=第二項+nums[2] ...


第一項不動,往後算第 N 項時就去取第 N-1 項往下加,再寫入結果。附帶一提,雖然不太鼓勵,但這題要直接更新於原陣列 (In-place 修改) 也可行~


參考程式碼:

var runningSum = function(nums) {
// 原地修改
for(let i=1; i<nums.length; i++){
nums[i]+=nums[i-1];
}
return nums;

// 新陣列輸出
let arr=[nums[0]];
for(let i=1; i<nums.length; i++){
arr.push(arr[arr.length-1]+nums[i]);
}
return arr;
};



  • 本題分類標籤:ArrayPrefix Sum
  • 本題正解率=86.6%

❤️ 若內容對你實用,歡迎追蹤本專題,或小額贊助支持~
⭐ 這是我的第 12 篇刷題筆記,完整解題索引看這裡 → Here

留言
avatar-img
留言分享你的想法!
avatar-img
LeetCode King
55會員
59內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
LeetCode King的其他內容
2023/12/16
正確答案居然有無限多組!找到任何一種就算通過,這是怎麼回事?
Thumbnail
2023/12/16
正確答案居然有無限多組!找到任何一種就算通過,這是怎麼回事?
Thumbnail
2023/09/26
動一步要花錢,動兩步卻免費,這其中藏了什麼詐?聰明的你想到了嗎?
Thumbnail
2023/09/26
動一步要花錢,動兩步卻免費,這其中藏了什麼詐?聰明的你想到了嗎?
Thumbnail
2023/09/22
環狀的公車路線圖,題目讀懂後會發現是個腦筋急轉彎!XD
Thumbnail
2023/09/22
環狀的公車路線圖,題目讀懂後會發現是個腦筋急轉彎!XD
Thumbnail
看更多
你可能也想看
Thumbnail
題目敘述 Patching Array 題目給定一個整數陣列, 請問還要補上多少個數字,才能用這些數字的和拼湊出所有1~n的整數。
Thumbnail
題目敘述 Patching Array 題目給定一個整數陣列, 請問還要補上多少個數字,才能用這些數字的和拼湊出所有1~n的整數。
Thumbnail
題目敘述 Minimum Increment to Make Array Unique 給定一個整數陣列,每回合可以任意挑一個數字進行+1的加法操作。 請問最少需要多少次的+1加法操作,才能讓每個數字都相異?
Thumbnail
題目敘述 Minimum Increment to Make Array Unique 給定一個整數陣列,每回合可以任意挑一個數字進行+1的加法操作。 請問最少需要多少次的+1加法操作,才能讓每個數字都相異?
Thumbnail
本文章討論如何使用動態規劃和回頭查看技巧來計算最長遞增子序列的長度,並提供了相關的測試案例和範例。本文還包括了詳細的演算法和程式碼示例,以及時間和空間複雜度的分析。
Thumbnail
本文章討論如何使用動態規劃和回頭查看技巧來計算最長遞增子序列的長度,並提供了相關的測試案例和範例。本文還包括了詳細的演算法和程式碼示例,以及時間和空間複雜度的分析。
Thumbnail
題目敘述 輸入給定一個鏈結串列,整體看代表一個十進位的數字,各別看每個節點代表每個digit,分別從最高位~最低位個位數。 要求我們把原本的數字乘以二,並且以鏈結串列的形式返回答案。 原本的英文題目敘述
Thumbnail
題目敘述 輸入給定一個鏈結串列,整體看代表一個十進位的數字,各別看每個節點代表每個digit,分別從最高位~最低位個位數。 要求我們把原本的數字乘以二,並且以鏈結串列的形式返回答案。 原本的英文題目敘述
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目敘述 題目會給定我們一個輸入陣列nums,要求我們掃描美個陣列元素nums[i],計算除了nums[i]以外的陣列元素連乘積。 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4] Output: [24,12,8,6] nums[0] 以
Thumbnail
題目敘述 題目會給定我們一個輸入陣列nums,要求我們掃描美個陣列元素nums[i],計算除了nums[i]以外的陣列元素連乘積。 題目的原文敘述 測試範例 Example 1: Input: nums = [1,2,3,4] Output: [24,12,8,6] nums[0] 以
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News