ধরুন আমাদের কাছে সংখ্যার একটি অ্যারে রয়েছে, আমাদের এই অ্যারের সমস্ত সূচক খুঁজে বের করতে হবে যাতে অ্যারে থেকে ith উপাদানটি মুছে ফেলার পরে, অ্যারেটি একটি ভাল অ্যারে হবে। আমাদের মনে রাখতে হবে যে −
- গুড অ্যারে হল এমন একটি অ্যারে যার একটি উপাদান রয়েছে যা অন্য সব উপাদানের যোগফলের সমান।
- 1-ভিত্তিক ইন্ডেক্সিং এখানে ব্যবহার করা হবে।
সুতরাং, যদি ইনপুটটি [10, 4, 6, 2] এর মতো হয়, তবে আউটপুট হবে [1,4] যেমন আমরা যখন A[1] সরিয়ে ফেলি তখন অ্যারেটি [4, 6, 2] এর মতো দেখাবে এবং এটি ভাল, যেমন 6 =4+2। এ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=A এর আকার
- যোগ করুন :=0
- my_map :=একটি নতুন মানচিত্র
- আমি 0 থেকে n রেঞ্জের জন্য, কর
- my_map[A[i]] :=my_map[A[i]] + 1
- add :=add + A[i]
- আমি 0 থেকে n রেঞ্জের জন্য, কর
- k :=যোগ করুন - A[i]
- যদি k mod 2 0 এর মত হয়, তাহলে
- k :=k/2
- যদি k my_map-এ, তাহলে
- যদি (A[i] k এবং my_map[k]> 1) বা (A[i] k এর মত না হয়), তাহলে
- i + 1 প্রদর্শন করুন
- যদি (A[i] k এবং my_map[k]> 1) বা (A[i] k এর মত না হয়), তাহলে
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
from collections import defaultdict def find_indices(A): n = len(A) add = 0 my_map = defaultdict(lambda:0) for i in range(n): my_map[A[i]] += 1 add += A[i] for i in range(n): k = add - A[i] if k % 2 == 0: k = k >> 1 if k in my_map: if ((A[i] == k and my_map[k] > 1) or (A[i] != k)): print((i + 1)) A = [10, 4, 6, 2] find_indices(A)
ইনপুট
[10, 4, 6, 2]
আউটপুট
1 4