मान लीजिए कि हमारे पास nums नामक एक सरणी है। हमें एक सबअरे का निरपेक्ष योग ज्ञात करना है [nums_l, nums_l+1, ..., nums_r-1, nums_r] है |nums_l + nums_l+1 + ... + nums_r-1 + nums_r|. हमें अंकों के किसी भी उप-सरणी का अधिकतम निरपेक्ष योग ज्ञात करना होगा (वह उप-सरणी संभवतः खाली हो सकती है)।
इसलिए, यदि इनपुट nums =[2,-4,-3,2,-6] जैसा है, तो आउटपुट 11 होगा क्योंकि सबअरे [2,-4,-3,2] में अधिकतम निरपेक्ष सबअरे योग है | 2 + (-4) + (-3) + 2| =11.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n:=अंकों का आकार
-
उत्तर:=0, अस्थायी:=0
-
मैं के लिए 0 से n -1 की सीमा में, करो
-
अगर अस्थायी <0, तो
-
अस्थायी:=0
-
-
अस्थायी:=अस्थायी + अंक [i]
-
उत्तर:=अधिकतम उत्तर और |temp|
-
-
अस्थायी:=0
-
मैं के लिए 0 से n -1 की सीमा में, करो
-
अगर अस्थायी> 0, तो
-
अस्थायी:=0
-
-
अस्थायी:=अस्थायी + अंक [i]
-
उत्तर:=अधिकतम उत्तर और |temp|
-
-
वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n=len(nums) ans=0 temp=0 for i in range(n): if (temp<0): temp=0 temp=temp+nums[i] ans=max(ans,abs(temp)) temp=0 for i in range(n): if (temp>0): temp=0 temp=temp+nums[i] ans=max(ans,abs(temp)) return ans nums = [2,-4,-3,2,-6] print(solve(nums))
इनपुट
[2,-4,-3,2,-6]
आउटपुट
11