Python程式:求所有連續子列表的和的總和
假設我們有一個名為nums的數字列表,現在考慮每個連續的子陣列。對這些子陣列中的每一個求和,並返回所有這些值的總和。最後,將結果模 10 ** 9 + 7。
因此,如果輸入類似於 nums = [3, 4, 6],則輸出將為 43,因為我們有以下子陣列:[3] [4] [6] [3, 4] [4, 6] [3, 4, 6] 所有這些的總和是 43。
為了解決這個問題,我們將遵循以下步驟:
- N := nums 的大小
- ans := 0
- 對於 i 從 0 到 nums 的大小,執行:
- n := nums[i]
- ans := ans + (i+1) * (N-i) * n
- 返回 (ans mod 1000000007)
讓我們看看下面的實現以更好地理解:
示例
class Solution: def solve(self, nums): N=len(nums) ans=0 for i in range(len(nums)): n=nums[i] ans += (i+1) * (N-i) * n return ans%1000000007 ob = Solution() print(ob.solve([3, 4, 6]))
輸入
[3, 4, 6]
輸出
43
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP