ধরুন আমাদের কাছে 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 :=সংখ্যায় উপস্থিত সমস্ত উপাদানের যোগফল
-
l :=0
-
প্রতিটি সূচকের জন্য 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