ให้ลิสต์ตัวเลข nums หาผลรวมของผลรวมทุก subarray ที่ติดต่อกัน แล้ว mod 1e9+7
ตัวอย่าง: [3,4,6] → subarrays: [3],[4],[6],[3,4],[4,6],[3,4,6] → sum = 43
สูตรคณิตศาสตร์
อีเล็มน์ต์ที่ดัชนี i จะปรากฏใน subarray จำนวน (i+1) * (N-i) ครั้ง (N = ความยาวลิสต์)
การนำไปใช้
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])) # 43