43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
import unittest
|
|
|
|
def cont_seq(nums):
|
|
if not nums:
|
|
return 0
|
|
if len(nums) == 1:
|
|
return nums[0]
|
|
if len(nums) == 2:
|
|
return max(max(nums), sum(nums))
|
|
if max(nums) < 0:
|
|
return max(nums)
|
|
if max(nums) == min(nums):
|
|
return max(nums)
|
|
|
|
maxval = 0
|
|
count = 0
|
|
for n in nums:
|
|
count += n
|
|
if count < 0:
|
|
count = 0
|
|
elif count > maxval:
|
|
maxval = count
|
|
|
|
return maxval
|
|
|
|
class Test(unittest.TestCase):
|
|
data = [([], 0),
|
|
([2, -8, 3, -2, 4, -10], 5),
|
|
([2, -12, 3, -5, 4, -10], 4),
|
|
([2, 1, 1, 1, -8, 3, -1, 4, -2, 3, -1, -1, -1, -3, -6], 7),
|
|
([3, -1, 4, -2, 3, -1, -1, 3, -3, -6], 8),
|
|
([3, -1, 4, -2, 3, -1, -3, 3, -6, 4], 7),
|
|
([4, -3, 3, -4, 4, -1, 1, 3, -7], 7),
|
|
([4, -3, 3, -4, 4, -1, 1, 3, -7, 2, 2, 4], 8)]
|
|
|
|
def test_rotate_matrix(self):
|
|
for nums, expected in self.data:
|
|
res = cont_seq(nums)
|
|
self.assertEqual(res, expected)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|