在Python中查找与给定目标相同的子列表数的程序

在Python中查找与给定目标相同的子列表数的程序

假设我们有一个名为nums的数字列表和另一个目标值target,我们必须找到其总和与目标相同的子列表数量。

因此,如果输入为nums = [3, 0, 3],target = 3,则输出将为4,因为我们有这些子列表其总和为3:[3],[3, 0],[0, 3],[3]。

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

  • temp:一个空映射
  • temp [0]:1
  • s:0
  • ans:0
  • 对于范围从0到nums大小的i,执行以下操作
    • s:= s + nums [i]
    • comp:= s-target
    • 如果comp在temp中,则
      • ans:= ans + temp [comp]
    • temp [s]:= temp [s] +1
  • 返回 ans

让我们看以下实现以获得更好的理解:

示例代码

from collections import defaultdict

class Solution:
   def solve(self, nums, target):
      temp = defaultdict(int)
      temp [0] = 1
      s = 0
      ans = 0
      for i in range (len (nums)):
         s + = nums [i]
         comp = s-target
         if comp> = 0 and comp in temp:
            ans + = temp [comp]
         temp [s] + = 1
         return ans

ob = Solution()
nums = [3, 0, 3]
target = 3
print(ob.solve(nums, target))

输入

[3, 0, 3],3

产量

4

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程