สมมติว่าเรามีตัวเลขอาร์เรย์ ผลรวมของอาร์เรย์ที่เป็น rs[i] คือผลรวมขององค์ประกอบทั้งหมดตั้งแต่ nums[0] ถึง nums[i] สุดท้ายให้คืนค่าผลรวมของจำนวนทั้งหมด
ดังนั้น หากอินพุตเท่ากับ nums =[8,3,6,2,1,4,5] ผลลัพธ์จะเป็น [8, 11, 17, 19, 20, 24, 29] เพราะ
rs[0] = nums[0] rs[1] = sum of nums[0..1] = 8 + 3 = 11 rs[2] = sum of nums[0..2] = 8 + 3 + 6 = 17 and so on
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
n:=ขนาดของ nums
-
rs:=[nums[0]]
-
สำหรับฉันอยู่ในช่วง 1 ถึง n - 1 ทำ
-
nums[i] :=nums[i] + nums[i-1]
-
ใส่ nums[i] ต่อท้าย rs
-
-
ส่งคืนสินค้า
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(prices): n=len(nums) rs=[nums[0]] for i in range(1,n): nums[i]+=nums[i-1] rs.append(nums[i]) return rs nums = [8,3,6,2,1,4,5] print(solve(nums))
อินพุต
[8,3,6,2,1,4,5]
ผลลัพธ์
[8, 11, 17, 19, 20, 24, 29]