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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP