मान लीजिए हमारे पास कुछ एलिमेंट्स का एक ऐरे है। हमें ऐरे एलिमेंट्स को रोटेट करने पर अधिकतम वेटेड योग ढूंढना है। ऐरे nums का वेटेड योग नीचे की तरह गणना किया जा सकता है:
$$\mathrm{S = \sum_{i=1}^{n} i * nums[i]}$$
उदाहरण के लिए, यदि इनपुट 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 := len(nums)sum_a := sum(nums)ans := sum(nums[i] * (i + 1) for i in range(n))cur_val := ansiको 0 सेn - 1तक लूप चलाएं:cur_val := cur_val - sum_a + nums[i] * nans := max(ans, cur_val)
ansवापस करें।
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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