博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大连续子数组
阅读量:6869 次
发布时间:2019-06-26

本文共 1326 字,大约阅读时间需要 4 分钟。

问题描述:

HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?

分析:如果数组中的数字全部为整数,该问题变不用计算,该算法主要是考虑当出现负数时,该如何处理。这里我给出了两种解决方式,代码如下所示:

 

 

 

 

class Solution {public:    int FindGreatestSumOfSubArray(vector
array) { if(array.size()==0) return 0; int sum = array[0]; int temp = array[0]; for(int i=1;i

 

class Solution {   int FindGreatestSumOfSubArray(int[] array)     {        int maximum=Integer.MIN_VALUE;          int sum = 0;          if(array.length==0)        {           return 0;        }        else        {            for (int i = 0; i < array.length; i++)                {                  for (int j = i; j < array.length; j++)                  {                      for (int k = i; k <=j; k++)                      {                          sum += array[k];                      }                      if (sum > maximum)                    {                        maximum = sum;                       }                            sum = 0;   //这里要记得清零,否则的话sum最终存放的是所有子数组的和。也就是编程之美上所说的bug。                  }              }              return maximum;           }                  }    }

 

转载于:https://www.cnblogs.com/guanling222/p/5372104.html

你可能感兴趣的文章
sed
查看>>
不以成败论战略
查看>>
我的友情链接
查看>>
一个开源系统的架构分析
查看>>
系统基本功能
查看>>
der pem cer crt key pfx等概念及区别
查看>>
我的友情链接
查看>>
flume-ng 1.5.0安装部署
查看>>
http长连接与短连接
查看>>
数据库中快速备份一个表的数据,或者只备份表结构
查看>>
vue-cli
查看>>
文件处理
查看>>
代码调试包Infragistics Windows Forms Test Automation发布v16.1|附下载
查看>>
我的友情链接
查看>>
Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
查看>>
Eclipse中提高Android SDK Manager下载速度方法
查看>>
五、Storm入门之Bolt
查看>>
web开发插入数据时控制台没报错,可能是数据库表被锁了
查看>>
python_day11のPython操作 pymysql && SQLAchemy
查看>>
格式化输出
查看>>