连续子数组的最大和

简介:

    题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求元素和值最大的那个子数组的和值。

    C#实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public  static  int  FindGreatestSumOfSubArray( int [] pData)
         {
             if  (pData.Length <= 0)
                 return  -1;
 
             int  nCurSum = 0;
             int  nGreatestSum = 0;
             for  ( int  i = 0; i < pData.Length; i++)
             {
                 if  (nCurSum <= 0)
                     nCurSum = pData[i];
                 else
                     nCurSum += pData[i];
 
                 if (nCurSum > nGreatestSum)
                     nGreatestSum = nCurSum;
             }
 
             return  nGreatestSum;
         }

    Java实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public  static  int  findGreatestSumOfSubArray( int [] pData)
     {
         if  (pData.length <=  0 )
             return  - 1 ;
 
         int  nCurSum =  0 ;
         int  nGreatestSum =  0 ;
         for  ( int  i =  0 ; i < pData.length; i++)
         {
             if  (nCurSum <=  0 )
                 nCurSum = pData[i];
             else
                 nCurSum += pData[i];
 
             if (nCurSum > nGreatestSum)
                 nGreatestSum = nCurSum;
         }
 
         return  nGreatestSum;
     }

    Python实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def  find_greatest_sum_of_sub_array(pData):
     """
     连续子数组的最大和
     输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。
     求元素和值最大的那个子数组的和值
     :param pData:
     :return:
     """
     if  len (pData) < =  0 :
         return
     nCurSum  =  0
     nGreatestSum  =  0
     for  item  in  pData:
         if  nCurSum < =  0 :
             nCurSum  =  item
         else :
             nCurSum  + =  item
 
         if  nCurSum > nGreatestSum:
             nGreatestSum  =  nCurSum
 
     return  nGreatestSum







本文转自 许大树 51CTO博客,原文链接:http://blog.51cto.com/abelxu/1979253,如需转载请自行联系原作者
相关文章
|
3月前
LeetCode 1550. 存在连续三个奇数的数组
LeetCode 1550. 存在连续三个奇数的数组
19 0
|
2月前
leetcode-581:最短无序连续子数组
leetcode-581:最短无序连续子数组
13 0
【剑指offer】-连续子数组的最大和-30/67
【剑指offer】-连续子数组的最大和-30/67
|
5月前
|
存储 算法
算法:滑动窗口解决连续区间子数组问题
算法:滑动窗口解决连续区间子数组问题
|
9月前
剑指offer 43. 连续子数组的最大和
剑指offer 43. 连续子数组的最大和
50 0
|
存储
【LeetCode】同余定理处理连续的子数组和
【LeetCode】同余定理处理连续的子数组和
91 0
数组——209.长度最小的子数组
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。
408 0
|
人工智能
连续子数组的最大和
连续子数组的最大和
71 0