একটি লিস্ট nums দেওয়া আছে। সবচেয়ে ছোট সূচক i বের করুন যেখানে i-এর বামপাশের সংখ্যাগুলোর যোগফল = ডানপাশের যোগফল। না পেলে -1 রিটার্ন করুন।
উদাহরণ
nums = [8,2,3,6,5,2,5,9,1,2] → আউটপুট: 4
বাম: [8,2,3,6] = ১৯, ডান: [2,5,9,1,2] = ১৯
এলগরিদম (O(n))
r := sum(nums), l := 0- প্রতিটি
i, xএর জন্য: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)) # আউটপুট: 4
ইনপুট / আউটপুট
[8,2,3,6,5,2,5,9,1,2] 4