ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, এখন প্রতিটি সংলগ্ন সাব্যারে বিবেচনা করুন। এই সাবয়ারের প্রতিটি যোগ করুন এবং এই সমস্ত মানের যোগফল প্রদান করুন। অবশেষে, ফলাফলটি 10 ** 9 + 7 দ্বারা পরিবর্তন করুন।
সুতরাং, ইনপুট যদি nums =[3, 4, 6] এর মত হয়, তাহলে আউটপুট হবে 43, যেমন আমাদের নিচের সাবয়ারে রয়েছে - [3] [4] [6] [3, 4] [4, 6] [৩, ৪, ৬] এই সবগুলোর যোগফল ৪৩।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- N:=সংখ্যার আকার
- উত্তর:=0
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- করুন
- n:=সংখ্যা[i]
- উত্তর :=উত্তর +(i+1) *(N-i) * n
- রিটার্ন (আন মোড 1000000007)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): N=len(nums) ans=0 for i in range(len(nums)): n=nums[i] ans += (i+1) * (N-i) * n return ans%1000000007 ob = Solution() print(ob.solve([3, 4, 6]))
ইনপুট
[3, 4, 6]
আউটপুট
43