【算法与数据结构】53、LeetCode最大子数组和

所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解

一、题目

在这里插入图片描述

二、解法

  思路分析:程序一共两个变量,一个result一个count。result用来记录最终的结果,count记录当前的子序列和。如果说当前和(count)大于上次的最大和(result),就更新result。每当当前和小于0是就将count重置为0,因为小于0的和不会增加count的值可以直接舍去。例如,[-2,1,-3,4,-1,2,1,-5,4],-2+1=-1。那么最大和的连续子数组可以从1开始计算,-2直接不用。
  程序如下

class Solution {
   
public:
	int maxSubArray(vector<int>& nums) {
   
		int result = INT32_MIN;		// 32位最小值
		int count = 0;
		for (int i = 0; i < nums.size(); i++) {
   
			count = count + nums[i];
			if (count > result) result = count;
			if (count < 0) count = 0;
		}
		return result;
	}
};

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)

三、完整代码

# include <iostream>
# include <vector>
using namespace std;

class Solution {
   
public:
	int maxSubArray(vector<int>& nums) {
   
		int result = INT32_MIN;		// 32位最小值
		int count = 0;
		for (int i = 0; i < nums.size(); i++) {
   
			count = count + nums[i];
			if (count > result) result = count;
			if (count < 0) count = 0;
		}
		return result;
	}
};
int main() {
   
	vector<int> nums = {
    -2,1,-3,4,-1,2,1,-5,4 };
	Solution s1;
	int result = s1.maxSubArray(nums);
	cout << result << endl;
	system("pause");
	return 0;
}

end

相关推荐

  1. LeetCode[53]

    2023-12-16 08:00:02       41 阅读
  2. LeetCode 53

    2023-12-16 08:00:02       39 阅读
  3. 53. (力扣LeetCode

    2023-12-16 08:00:02       25 阅读
  4. leetcode 53

    2023-12-16 08:00:02       11 阅读
  5. leetcode 53.

    2023-12-16 08:00:02       11 阅读
  6. LeetCode53题:【python 5种算法

    2023-12-16 08:00:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 08:00:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 08:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 08:00:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 08:00:02       20 阅读

热门阅读

  1. Unity 使用AddForce方法给刚体施加力详解

    2023-12-16 08:00:02       44 阅读
  2. ubuntu-cvat标注工具部署

    2023-12-16 08:00:02       45 阅读
  3. coffee:使用AI构建和迭代React UI速度提高10

    2023-12-16 08:00:02       47 阅读
  4. Qt容器QDockWidget桌面的顶级窗口浮动

    2023-12-16 08:00:02       42 阅读
  5. go-zero目录结构和说明

    2023-12-16 08:00:02       34 阅读
  6. ubuntu+vscode+cmake 安装libtorch

    2023-12-16 08:00:02       39 阅读
  7. Groovy 基础学习1

    2023-12-16 08:00:02       32 阅读
  8. 某60内网渗透之frp实战指南1

    2023-12-16 08:00:02       40 阅读
  9. 4-Docker命令之docker cp

    2023-12-16 08:00:02       42 阅读
  10. EasyExcel

    EasyExcel

    2023-12-16 08:00:02      44 阅读
  11. vscode

    vscode

    2023-12-16 08:00:02      41 阅读
  12. Vue3中ref和reactive的区别

    2023-12-16 08:00:02       38 阅读
  13. 跨站点分布式多活存储建设方案概述

    2023-12-16 08:00:02       35 阅读