zoukankan      html  css  js  c++  java
  • 子数组的最大和

    定义两个变量nSum、nMaxSum,其中nSum用来存储当前和,nMaxSum用来存储最大和,若nSum <= 0,则需从下一个数开始重新记录当前和,每计算一次当前和,需与nMaxSum比较,若nSum > nMaxSum则需更新nMaxSum,反之不需更新。

    基于上述分析,写出代码如下:

     1 int SubArrayMaxSum(int *arr, int N)
     2 {
     3     assert (arr != NULL);
     4 
     5     assert (N > 0);
     6 
     7     int nSum = 0;
     8 
     9     // 将int型的最小值INT_MIN赋给nMaxSum,其中INT_MIN在头文件limits.h中定义
    10     int nMaxSum = INT_MIN;
    11 
    12     for (int i = 0; i < N; ++i)
    13     {
    14         if (nSum <= 0)
    15         {
    16             nSum = arr[i];
    17         }
    18         else
    19         {
    20             nSum += arr[i];
    21         }
    22 
    23         if (nSum > nMaxSum)
    24         {
    25             nMaxSum = nSum;
    26         }
    27     }
    28 
    29     return (nMaxSum);
    30 }
  • 相关阅读:
    c#中@的3种作用
    iOS7 各种问题解决
    时钟
    京东APP(部分)-安卓
    博弈取石子
    博弈取牌
    年月日
    猪(恶作剧程序)
    字符统计
    奇偶类约瑟夫
  • 原文地址:https://www.cnblogs.com/ldjhust/p/2993563.html
Copyright © 2011-2022 走看看