ให้ลิสต์ nums หา Index i น้อยที่สุด ที่ผลรวมซ้าย = ผลรวมขวา (ไม่รวมตัวเอง) ไม่มี → -1
ตัวอย่าง: nums=[8,2,3,6,5,2,5,9,1,2] → 4 (ซ้าย: 8+2+3+6=19, ขวา: 2+5+9+1+2=19)
ขั้นตอน (One Pass O(n))
r = sum(nums), l = 0- วน
i, xในnums:r -= x- ถ้า
r == l: คืนi 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)) # Output: 4อินพุต
[8,2,3,6,5,2,5,9,1,2]
เอาต์พุต
4