ধরুন আমাদের কাছে বাছাই করা সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা, আমাদের প্রদত্ত তালিকার প্রতিটি জোড়া সংখ্যার মধ্যে পরম পার্থক্যের যোগফল খুঁজে বের করতে হবে। এখানে আমরা বিবেচনা করব (i, j) এবং (j, i) আলাদা জোড়া। উত্তরটি খুব বড় হলে, ফলাফলটি 10^9+7 দ্বারা পরিবর্তন করুন।
সুতরাং, ইনপুট যদি nums =[2, 4, 8] এর মত হয়, তাহলে আউটপুট হবে 24, যেমন |2 - 4| + |2 - 8| + |4 - 2| + |4 - 8| + |8 - 2| + |8 - 4|।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
m =10^9 + 7
-
মোট :=0
-
আমি 0 থেকে সংখ্যার আকারের মধ্যে, কর
-
মোট :=মোট +(i*সংখ্যা[i] - (সংখ্যার আকার - 1 - i) *সংখ্যা[i]) মোড m
-
-
রিটার্ন (2*মোট) মোড m
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): m = 10**9 + 7 total = 0 for i in range(len(nums)): total += (i*nums[i] - (len(nums) - 1 - i)*nums[i]) % m return (2*total) % m ob = Solution() nums = [2, 4, 8] print(ob.solve(nums))
ইনপুট
[2, 4, 8]
আউটপুট
24