ধরুন আমাদের পূর্ণসংখ্যার একটি অ্যারে আছে। আমাদের দুটি পূর্ণসংখ্যার সূচকগুলি ফেরত দিতে হবে, যেমন আমরা যদি সেগুলি যোগ করি তবে আমরা একটি নির্দিষ্ট লক্ষ্যে পৌঁছতে পারব যা দেওয়া হয়েছে। এখানে আমরা একটি অনুমান নেব, তা হল অ্যারেতে সর্বদা একটি অনন্য সমাধান থাকবে, তাই একই লক্ষ্যের জন্য দুটি সূচকের সেট থাকবে না৷
একটি উদাহরণের জন্য, ধরুন অ্যারেটি A =[2, 8, 12, 15] এর মতো, এবং লক্ষ্য যোগফল হল 20। তারপর এটি সূচক 1 এবং 2 প্রদান করবে, A[1] + A[2] =20 হিসাবে।
এটি সমাধান করার জন্য, আমরা অ্যারের প্রতিটি উপাদানের মাধ্যমে লুপ করব। তাই এটি সমাধান করতে এই পদক্ষেপগুলি অনুসরণ করুন৷
- রেস নামক ফলাফল ধরে রাখতে একটি মানচিত্র সংজ্ঞায়িত করুন
- সূচক i এর জন্য 0 থেকে n – 1 রেঞ্জে (যেখানে n হল অ্যারের উপাদানের সংখ্যা)
- যদি লক্ষ্য − A[i] res
- এ উপস্থিত থাকে
- রিটার্ন রিটার্ন [লক্ষ্য − A[i]] এবং i সূচক হিসাবে
- অন্যথায় i-কে res-এ res[A[i]] − =i
- যদি লক্ষ্য − A[i] res
আসুন আরও ভালভাবে বোঝার জন্য বাস্তবায়ন দেখি
উদাহরণ
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ required = {} for i in range(len(nums)): if target - nums[i] in required: return [required[target - nums[i]],i] else: required[nums[i]]=i input_list = [2,8,12,15] ob1 = Solution() print(ob1.twoSum(input_list, 20))
ইনপুট
input_list = [2,8,12,15] target = 20
আউটপুট
[1, 2]