मान लीजिए हमारे पास एक ऐरे nums है। हमें एक सबऐरे [nums_l, nums_l+1, ..., nums_r-1, nums_r] का निरपेक्ष योग ढूंढना है जो |nums_l + nums_l+1 + ... + nums_r-1 + nums_r| है। हमें nums के किसी भी सबऐरे का अधिकतम निरपेक्ष योग ढूंढना है (वह सबऐरे संभवतः खाली हो सकता है)।
उदाहरण के लिए, यदि इनपुट है nums = [2,-4,-3,2,-6], तो आउटपुट 11 होगा क्योंकि सबऐरे [2,-4,-3,2] का अधिकतम निरपेक्ष सबऐरे योग |2 + (-4) + (-3) + 2| = 11 है।
समाधान के चरण
n := len(nums)ans := 0,temp := 0iको 0 सेn-1तक:- यदि
temp < 0, तोtemp := 0 temp := temp + nums[i]ans := max(ans, abs(temp))
- यदि
temp := 0iको 0 सेn-1तक:- यदि
temp > 0, तोtemp := 0 temp := temp + nums[i]ans := max(ans, abs(temp))
- यदि
ansवापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
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