这两个问题类似,都可利用动态规划思想求解。

一、最大连续子序列和

https://leetcode.com/problems/maximum-subarray/description/

https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/

The core ideas are the same:

        currentMax = max(nums[i], some_operation(currentMax, nums[i])).

For each element, we have 2 options: put it inside a consecutive subarray, or start a new subarray with it.

#include <vector>

int maxSubArray(std::vector<int>& nums)
{
if (nums.empty())
{
return ;
} int currMax = nums[];
int maxResult = nums[]; int size = (int)nums.size();
for (int i = ; i < size; ++i)
{
currMax = std::max(nums[i], currMax + nums[i]);
maxResult = std::max(maxResult, currMax);
} return maxResult;
}

二、最大连续子序列积

https://stackoverflow.com/questions/25590930/maximum-product-subarray

https://leetcode.com/problems/maximum-product-subarray/description/

https://www.geeksforgeeks.org/maximum-product-subarray/

https://www.geeksforgeeks.org/maximum-product-subarray-added-negative-product-case/

https://www.geeksforgeeks.org/maximum-product-subarray-set-2-using-two-traversals/

#include <vector>

int maxProduct(std::vector<int>& nums)
{
if (nums.empty())
{
return ;
} int size = (int)nums.size(); int currMax = nums[];
int currMin = nums[];
int maxResult = nums[]; for (int i = ; i < size; ++i)
{
int t_currMax = currMax * nums[i];
int t_currMin = currMin * nums[i]; currMax = max(nums[i], max(t_currMax, t_currMin));
currMin = min(nums[i], min(t_currMax, t_currMin));
maxResult = max(maxResult, currMax);
} return maxResult;
}

最新文章

  1. 【编辑器】【Sublime Text】使用笔记
  2. Web——在淘宝搜索到看到商品
  3. php实现的IMEI限制的短信验证码发送类
  4. JQuery事件的链式写法
  5. codeforces 300E Empire Strikes Back 数论+二分查找
  6. 配置tomcat,java运行环境
  7. JSF 2 panelGrid example
  8. SpringUtil
  9. AWS IAM (Identity and Access Management) 使用笔记
  10. js一些方法的扩展
  11. 数学概念——A 几何概型
  12. js dom操作获取节点的一些方法
  13. 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
  14. sort()没有返回值
  15. day 23 对象的名称空间 类,对象属性和方法 封装 接口提供
  16. AndroBench手机性能测试
  17. day94
  18. web移动端浮层滚动阻止window窗体滚动JS/CSS处理
  19. HDFS格式化namenode后启动集群datanode不启动
  20. Intent在Activity之间传值的几种方式

热门文章

  1. MySQL数据库_目录
  2. 并发编程(二)——利用Process类开启进程、僵尸进程、孤儿进程、守护进程、互斥锁、队列与管道
  3. chrony实现局域网时间同步
  4. JS的面向对象与原型
  5. js button禁用/启用
  6. Redis 小调研
  7. Keil5-建立第一个STM32工程
  8. 从零开始搭建系统1.4——MySql安装及配置
  9. quartz的使用(二.基本过程)
  10. delphi 注册表