Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- # @param A : list of integers
- # @return a list of integers
- def maxset(self, A):
- current_max = A[0]
- max_length = 0
- current_sum = 0
- current_length = 0
- next_max_idx = 0
- current_idx = 0
- max_idx = 0
- max_idx2 = 0
- flag = 0
- flag2 = 0
- flag3 = False
- for i in xrange(len(A)):
- x = A[i]
- if x >= 0:
- if flag == 0:
- flag = 1
- if flag2 == 0:
- flag2 = 1
- current_idx = i
- current_sum += x
- current_length += 1
- if x < 0 or i == len(A) - 1:
- if flag == 1:
- flag = 2
- if flag2 == 1:
- flag2 = 0
- if current_sum > current_max:
- current_max = current_sum
- max_idx = current_idx
- max_idx2 = i
- if i == len(A) - 1 and x >= 0:
- flag3 = True
- elif current_sum == current_max and current_length > max_length:
- max_length = current_length
- max_idx = current_idx
- max_idx2 = i
- if i == len(A) - 1 and x >= 0:
- flag3 = True
- current_sum = 0
- current_length = 0
- if flag != 2:
- return []
- if flag3:
- max_idx2 += 1
- # print max_idx, max_idx2
- return A[max_idx:max_idx2]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement