数据结构与算法(作业四)

吃可爱长大的小学妹 提交于 2020-03-01 19:21:19

最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

运算代码如下:

class Solution {
public:    int maxSubArray(vector<int>& nums) 
{if(nums.size()==0) return NULL; 
    int max=nums[0];  
    int sum=0;       
 for(int i=0;i<nums.size();i++)    
   {  sum=0;         
      for(int j=i;j<nums.size();j++)      
        {  sum+=nums[j];
          if(sum>max) max=sum; 
        }     
   }      
      return max;  
  }
 };

此代码首先判断了数组是否是空的,这个要不要随你了。然后定义max是用来存储最大值的,sum是用来求和的。首先循环数组长度次数的i,在i里面再次循环数组长度次数的j,目的是用来找出最大的和,所以做一下简单的判断,一直不断的找出最大的和,最终返回即可。

在这里插入图片描述
像这样的暴力做法,运算的确很费时间。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!