leetcode 53. Maximum Subarray 、152. Maximum Product Subarray
53. Maximum Subarray
之前的值小于0就不加了。dp[i]表示以i结尾当前的最大和,所以需要用一个变量保存最大值。
动态规划的方法:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
vector<int> dp(nums.size());
int res = INT_MIN;
for(int i = ;i < nums.size();i++){
dp[i] = nums[i];
if(i > && dp[i-] >= )
dp[i] += dp[i-];
res = max(res,dp[i]);
}
return res;
}
};
152. Maximum Product Subarray
最小值可能是负数,这个值可能变成最大值。
dp[i]表示以i结尾当前的最大乘积,所以需要用一个变量保存最大值。
为什么每次要与nums[i]做对比,因为数组中可能存在0
动态规划的方法:
class Solution {
public:
int maxProduct(vector<int>& nums) {
vector<int> dp_max(nums.size());
vector<int> dp_min(nums.size());
dp_max[] = nums[];
dp_min[] = nums[];
int res = nums[];
for(int i = ;i < nums.size();i++){
dp_max[i] = max(dp_max[i-] * nums[i],max(dp_min[i-] * nums[i],nums[i]));
dp_min[i] = min(dp_max[i-] * nums[i],min(dp_min[i-] * nums[i],nums[i]));
res = max(res,dp_max[i]);
}
return res;
}
};
非动态规划,节省空间的方法:
https://blog.csdn.net/whuwangyi/article/details/39577455解法3
class Solution {
public:
int maxProduct(vector<int>& nums) {
int max = nums[];
int pre_max = nums[],pre_min = nums[];
int cur_max,cur_min;
for(int i = ;i < nums.size();i++){
cur_max = compare_max(pre_max*nums[i],pre_min*nums[i],nums[i]);
cur_min = compare_min(pre_max*nums[i],pre_min*nums[i],nums[i]);
pre_max = cur_max;
pre_min = cur_min;
max = cur_max > max ? cur_max : max;
}
return max;
}
int compare_max(int a,int b,int c){
int max = a;
if(b > max)
max = b;
if(c > max)
max = c;
return max;
}
int compare_min(int a,int b,int c){
int min = a;
if(b < min)
min = b;
if(c < min)
min = c;
return min;
}
};
leetcode 53. Maximum Subarray 、152. Maximum Product Subarray的更多相关文章
- leecode 每日解题思路 152 Maximun Product Subarray
问题描述: 问题链接:152 Maximum Product Subarray 在经典的算法解析中, 有关的分治和动态规划的,经典题型之一就是求最大子段和, 这道题就是他的变形:求最大子段积; 这个问 ...
- LeetCode 53. 最大子序和(Maximum Subarray)
53. 最大子序和 53. Maximum Subarray 题目描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. LeetCode53. M ...
- [LeetCode]题解(python):152-Maximum Product Subarray
题目来源: https://leetcode.com/problems/maximum-product-subarray/ 题意分析: 给定一个数组,这个数组所有子数组都有一个乘积,那么返回最大的乘积 ...
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
题目:Maximum Product Subarray Find the contiguous subarray within an array (containing at least one nu ...
- [LeetCode] 152. Maximum Product Subarray 求最大子数组乘积
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- 152. Maximum Product Subarray - LeetCode
Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的 ...
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- 【刷题-LeetCode】152 Maximum Product Subarray
Maximum Product Subarray Given an integer array nums, find the contiguous subarray within an array ( ...
- LeetCode 152. Maximum Product Subarray (最大乘积子数组)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
随机推荐
- AIX中设备管理
1.AIX系统中的设备概述 逻辑设备文件 #ls -l /dev 空设备文件 #/dev/null 设备的状态:undefined.defined.available.stopp ...
- hadoop的三大组件安装
安装过程分3步走: 1.安装namenode主机一台; 2.安装datanode主机三台; 3.启用集群的三大组件: HDFS,Mapreduce,Yarn. 重要的事情: 新建的虚拟机,预备安装ha ...
- 数据结构之查找(图片来源,老师PPT)
顺序查找进行遍历元素,进行查找 总计全部比较次数为:1+2+…+n = (1+n)n/2 若求某一个元素的平均查找次数,还应当除以n(等概率), 即: ASL=(1+n)/2 ,时间效率为 O(n) ...
- (转) ORACLE 正确删除归档日志的方法
ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中 ...
- 摘抄 <关于 作为>
出路在哪里?出路在于思路! 其实,没有钱.没有经验.没有阅历.没有社会关系,这些都不可怕.没有钱,可以通过辛勤劳动去赚:没有经验,可以通过实践操作去总结:没有阅历,可以一步一步去积累:没有社会关系,可 ...
- 机器学习降维--PCA
1.原理和概念 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法. PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征 ...
- Eigen 矩阵库学习笔记
最近为了在C++中使用矩阵运算,简单学习了一下Eigen矩阵库.Eigen比Armadillo相对底层一点,但是只需要添加头文库即可使用,不使用额外的编译和安装过程. 基本定义 Matrix3f是3* ...
- DOM操作元素
DOM 操作元素 JavaScript的DOM操作可以改变网页内容.结构和样式.我们可以利用DOM操作元素来改变元素里面的内容.属性等. DOM操作元素: 一.操作元素:(一)innerText .( ...
- Redis 数据安全与性能保障
数据安全与性能保障 ·将数据持久化至硬盘·将数据复制至其他机器·处理系统故障·reids事务·非实物型流水线·诊断性能问题 持久化选项: 共享选项,这个选项决定了快照文件和AOF文件的保存位置dir ...
- C# 泛型 new{ }??? //加new 和不加new 有什么不同? new() 约束
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...