程序查找Python中所有连续子列表的总和

假设我们有一个称为nums的数字列表,现在考虑每个连续的子数组。对每个子数组求和,然后返回所有这些值的总和。最后,将结果修改为10 ** 9 + 7。

因此,如果输入类似于nums = [3,4,6],则输出将为43,因为我们具有以下子数组-[3] [4] [6] [3,4] [4,6] [3,4,6]所有这些的总和为43。

为了解决这个问题,我们将遵循以下步骤-

  • N:=数字大小

  • ans:= 0

  • 对于范围从0到nums的i,执行

    • n:= nums [i]

    • ans:= ans +(i + 1)*(Ni)* 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

以上是 程序查找Python中所有连续子列表的总和 的全部内容, 来源链接: utcz.com/z/338572.html

回到顶部