मान लीजिए कि हमारे पास कुछ तत्वों की एक सरणी है। यदि सरणी तत्वों को घुमाया जाता है तो हमें अधिकतम भारित योग खोजना होगा। एक सरणी संख्या के भारित योग की गणना नीचे की तरह की जा सकती है -
$$\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 :=अंकों में सभी तत्वों का योग
- Ans :=0 से n तक के सभी I के लिए (nums[i] *(i + 1)) के सभी तत्वों का योग
- cur_val :=ans
- मैं के लिए 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