ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। আমাদের সংখ্যার প্রতিটি জোড়ার প্রতিটি সংযোজনের যোগফল সংখ্যায় খুঁজে বের করতে হবে। এখানে জোড়া (i, j) এবং জোড়া (j, i) আলাদা বলে বিবেচিত হয়।
সুতরাং, যদি ইনপুটটি nums =[5, 3] এর মত হয়, তাহলে আউটপুট হবে 176, যেমন আমাদের নিম্নলিখিত সংযুক্তি রয়েছে:(সংখ্যা[0] + সংখ্যা[0]) =(5 কনক্যাট 5) =55, ( nums[0] + nums[1]) =(5 concat 3) =53, (nums[1] + nums[0]) =(3 concat 5) =35, (nums[0] + nums[0]) =(৩ কনক্যাট 3) =33, তাহলে যোগফল হল 55 + 53 + 35 + 33 =176
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
memo := a new map nums1 := nums temp := 0 c := sum of all elements in nums1 a := size of nums for i in range 0 to a, do if nums[i] is same as 0, then temp := temp + c otherwise, if nums[i] is present in memo, then temp := temp + memo[nums[i]] otherwise, b := 0 for j in range 0 to a, do b := b + integer of (nums[i] concatenate nums1[j]) memo[nums[i]] := b temp := temp + memo[nums[i]] return temp
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
class Solution: def solve(self, nums): memo = {} nums1 = nums temp = 0 c = sum(nums1) a = len(nums) for i in range(a): if nums[i] == 0: temp += c else: if nums[i] in memo: temp += memo[nums[i]] else: b = 0 for j in range(a): b += int(str(nums[i]) + str(nums1[j])) memo[nums[i]] = b temp += memo[nums[i]] return temp ob = Solution() nums = [5, 3] print(ob.solve(nums))
ইনপুট
[5, 3]
আউটপুট
176