Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm tổng của tổng tất cả các danh sách con liên tiếp trong Python


Cho một danh sách số nums, xem xét mọi mảng con liên tiếp. Tính tổng của từng mảng con và trả về tổng của tất cả các giá trị này. Cuối cùng, lấy kết quả modulo 10**9 + 7.

Ví dụ, nếu đầu vào là nums = [3, 4, 6], thì đầu ra sẽ là 43, vì các mảng con là: [3], [4], [6], [3, 4], [4, 6], [3, 4, 6]. Tổng của tất cả là 43.

Các bước giải quyết:

  • N := kích thước của nums.
  • ans := 0.
  • Với mỗi chỉ số i từ 0 đến N-1:
    • n := nums[i].
    • ans := ans + (i+1) * (N-i) * n.
  • Trả về ans % 1000000007.

Ví dụ minh họa

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]))

Đầu vào

[3, 4, 6]

Đầu ra

43