• 剑指offer 面试42题


    面试42题:

    题目:连续子数组的最大和

    题:输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)

    解题思路:在数组里从前向后遍历,记录下每次的“当前累加子数组和”和“当前的最大子数组和”(其本身包含“动态规划”的思想,详见剑指offer P220)

    解题代码:

    # -*- coding:utf-8 -*-
    class Solution:
        g_InvalidInput=False
        def FindGreatestSumOfSubArray(self, array):
            # write code here
            if not array or len(array)<=0:
                g_InvalidInput=True
                return 0
            
            g_InvalidInput=False
            curSum=0
            greatSum=float('-inf')
            for i in array:
                if curSum<=0:
                    curSum=i
                else:
                    curSum+=i
                if curSum>greatSum:
                    greatSum=curSum
            return greatSum
  • 相关阅读:
    vue基础知识
    git的创建使用
    使用express搭建服务器框架
    日常训练
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
  • 原文地址:https://www.cnblogs.com/yanmk/p/9224240.html
Copyright © 2020-2023  润新知