53. 最大子序和/C++
C++ 最大 53
2023-09-14 09:07:08 时间
暴力求解,从前往后遍历,如果所得和小于0,则舍弃前面的所有元素;如果所得和大于max,则记录下来。
int maxSubArray(vector<int>& nums) {
if(nums.empty())
return 0;
int sum = 0, max = INT_MIN;
for (auto i : nums) {
sum += i;
if (sum > max) max = sum;
if (sum < 0) sum = 0;
}
return max;
}
动态规划
f(n)是以第n个数结尾的最大和
f(n)=max(f(n-1)+nums[i],nums[i])
int maxSubArray(vector<int>& nums) {
if(nums.empty())
return 0;
int res = INT_MIN;
int f = -1;
for(auto i : nums){
f = max(i, f + i);
res = max(f, res);
}
return res;
}
相关文章
- php 0xffffffff,0xffffffff – 依睛(IT blog) 我回来了,PHPC/C++ LINUX – IT博客「建议收藏」
- 剑指offer No.4 重建二叉树(C++|Java版本)
- 暴力激活成功教程密码 – C++ 递归方法实现
- C++构造函数的作用_c++什么是构造函数
- C++基本概念_c语言 c++区别
- C++不知算法系列之高精度数值的加、减、乘、除算法
- c++的链表-C++链表
- C/C++生态工具链——GDB调试器
- c++字符串
- c++基础篇之C++ 模板
- C++ TCP winsock 多线程编程详解编程语言
- Web QQ 协议 登录加密算法 —— VC++实现详解编程语言
- C++中智能指针如何设计和使用