在Python中查找左侧和右侧元素总和相等的索引的程序

在Python中查找左侧和右侧元素总和相等的索引的程序

假设我们有一个名为nums的项目列表,我们必须找到最小的索引i,使得i左侧的数字之和等于i右侧的数字之和。 如果我们找不到这样的解决方案,则返回-1。

因此,如果输入是nums = [8,2,3,6,5,2,5,9,1,2],则输出将是4,因为在索引4左侧的元素和为[8、2、3、6] = 19,在右边的元素和中也是[2、5、9、1、2] = 19。

要解决此问题,我们将遵循以下步骤 −

  • r := nums中所有元素的总和

  • l := 0

  • 对于nums中的每个索引i和值x,执行以下操作

    • r:= r-x

    • 如果r与l相同,则

      • 返回i
    • l:= l + x

  • 返回-1

示例

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

def solve(nums):
   r = sum(nums)
   l = 0
   for i,x in enumerate(nums):
      r -= x
      if r == l:
         return i
      l += x
   return -1

nums = [8,2,3,6,5,2,5,9,1,2]
print(solve(nums))

输入

[8,2,3,6,5,2,5,9,1,2]

输出

4

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程