ধরুন আমাদের কয়েকটি উপাদানের একটি অ্যারে আছে। অ্যারের উপাদানগুলি ঘোরানো হলে আমাদের সর্বাধিক ওজনযুক্ত যোগফল খুঁজে বের করতে হবে। একটি অ্যারের সংখ্যার ওজনযুক্ত যোগফল নীচের মত গণনা করা যেতে পারে −
$$\mathrm{𝑆=\sum_{\substack{𝑖=1}}^{n}𝑖∗𝑛𝑢𝑚𝑠[𝑖]}$$
সুতরাং, যদি ইনপুটটি L =[5,3,4] এর মত হয়, তাহলে আউটপুট হবে 26 কারণ
-
অ্যারে হল [5,3,4], যোগফল হল 5 + 2*3 + 3*4 =5 + 6 + 12 =23
-
অ্যারে হল [3,4,5], যোগফল হল 3 + 2*4 + 3*5 =3 + 8 + 15 =26 (সর্বোচ্চ)
-
অ্যারে হল [4,5,3], যোগফল হল 4 + 2*5 + 3*3 =4 + 10 + 9 =23
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=সংখ্যার আকার
- sum_a :=সংখ্যায় সমস্ত উপাদানের যোগফল
- উত্তর :=0 থেকে n রেঞ্জের সমস্ত i এর জন্য (সংখ্যা[i] *(i + 1)) এর সমস্ত উপাদানের যোগফল
- cur_val :=উত্তর
- আমি 0 থেকে n - 1 রেঞ্জের জন্য, কর
- cur_val :=cur_val - sum_a + nums[i] * n
- উত্তর :=সর্বাধিক উত্তর এবং cur_val
- উত্তর ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums): n = len(nums) sum_a = sum(nums) cur_val = ans = sum(nums[i] * (i + 1) for i in range(n)) for i in range(n): cur_val = cur_val - sum_a + nums[i] * n ans = max(ans, cur_val) return ans nums = [5,3,4] print(solve(nums))
ইনপুট
[5,3,4]
আউটপুট
26