刷牛牛客遇到的题,想给出完整而又简洁的function(python解答,但是关键是思想,语言不是问题啦)
1.给定一个数组,数组中有正有负,求出连续
(全部都是正的时候,所有值累加就是最大值)
(全部为负的时候,max(array)就是我们想要的)
# -*- coding:utf-8 -*-
#import numpy
class Solution:
def FindGreatestSumOfSubArray(self, array):
length =len(array)
result =[]
sort_max = []
#1.全是正数的情况
#2.全是负数的情况
#3.有正有负的情况
for i in range(length-1):
for j in range(i+1,length):
result.append(sum(array[i:j]))
#全部为正时,所有累加起来就是最大的
result.append(sum(array))
#sort_ = sorted(result,reverse=False)
#找出最大值
sort_ = max(result)
#把每次得到的最大值存放在sort_max中
sort_max.append(sort_)
return max(sort_max)
2.从1-n 的正整数中出现 1 的次数: