Advertisement

Python:最大子数组和

阅读量:

牛客网上的剑指 offer在线编程题目:

题目描述

HZ时常会利用一些专业性的问题来对非计算机专业的同学进行调侃。在今日测试组会议结束后,他又提出了一个问题:在早期的一维模式识别技术中,经常需要求解连续子向量的最大和。当所有向量元素均为正数时,该问题的解决较为简单。然而,若向量中存在负数,是否应该将某些负数纳入计算范围,并期待其周围的正数能够弥补其带来的影响?例如:{6,-3,-2,7,-15,1,2,2},其中连续子向量的最大和为8(从第0个元素开始至第3个元素结束)。你是否会因此而感到困惑?(子向量的长度必须至少为1)

复制代码
 # -*- coding:utf-8 -*-

    
 class Solution:
    
     def FindGreatestSumOfSubArray(self, array):
    
     if array == []:
    
         return None
    
     s, m, ans = array[0], 0, array[0]
    
     for i in range(1, len(array)):
    
         if  s < m:
    
             s = m
    
         s += array[i]
    

全部评论 (0)

还没有任何评论哟~