Skip to content

Commit b021292

Browse files
committed
求最大和
1 parent f593683 commit b021292

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

max_sum.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#问题
2+
3+
最大连续子数组,求一个有正,有负数的数组(有正和负数,没有全是负数的情况),连续子数组之最大和。
4+
要求时间复杂度为O(n)
5+
6+
#解决(Python)
7+
8+
#coding:utf-8
9+
10+
def max_array(lst):
11+
this_sum = 0
12+
max_sum = 0
13+
for item in lst:
14+
this_sum += item
15+
if this_sum > max_sum:
16+
max_sum = this_sum
17+
elif this_sum < 0:
18+
this_sum = 0
19+
return max_sum
20+
21+
test_lst = [-2,11,-4,13,-5,-2]
22+
print(max_array(test_lst))
23+
24+
##迪艾姆python培训 黄哥所写 咨询:qq:1465376564
25+
##迪艾姆python远程视频培训班

max_sum.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#coding:utf-8
2+
3+
def max_array(lst):
4+
"""面试题:最大连续子数组,求一个有正,有负数的数组(有正和负数,没有全是负数的情况),
5+
连续子数组之最大和。
6+
迪艾姆python培训 黄哥所写 咨询:qq:1465376564
7+
迪艾姆python远程视频培训班
8+
要求时间复杂度为O(n)
9+
"""
10+
this_sum = 0
11+
max_sum = 0
12+
for item in lst:
13+
this_sum += item
14+
if this_sum > max_sum:
15+
max_sum = this_sum
16+
elif this_sum < 0:
17+
this_sum = 0
18+
return max_sum
19+
20+
test_lst = [-2,11,-4,13,-5,-2]
21+
print(max_array(test_lst))

0 commit comments

Comments
 (0)