leetcode 152. Maximum Product Subarry
这道题求的是乘积的最大值的,那么依照之前的和的最大值类似的做法的,乘积的最大值可能是在最大值*当前值和最小值*当前值和当前值三者之间取得的最大值的,那么使用两个变量来保存每一步的最大最小值的。
class Solution {
public:
int maxProduct(vector<int>& nums) {
if(nums.size()<=) return ;
int maxn,minn,res;
maxn=minn=res=nums[];
for(int i=;i<nums.size();i++){
if(nums[i]>){
maxn=max(maxn*nums[i],nums[i]);
minn=min(minn*nums[i],nums[i]);
}else{
int t=maxn; // 注意这里改变了最大值的
maxn=max(minn*nums[i],nums[i]);
minn=min(t*nums[i],nums[i]);
}
res=max(maxn,res);
}
return res;
}
};
从上面看出还可以更简短代码一些的,当小于0的时候就可以直接进行交换最大和最小值的,也不需要利用中间变量来重新替换的。
class Solution {
public:
int maxProduct(vector<int>& nums) {
if(nums.size()<=) return ;
int maxn,minn,res;
maxn=minn=res=nums[];
for(int i=;i<nums.size();i++){
if(nums[i]<) swap(maxn,minn);
maxn=max(maxn*nums[i],nums[i]);
minn=min(minn*nums[i],nums[i]);
res=max(maxn,res);
}
return res;
}
};
leetcode 152. Maximum Product Subarry的更多相关文章
- [LeetCode] 152. Maximum Product Subarray 求最大子数组乘积
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- [LeetCode] 152. Maximum Product Subarray_Medium tag: Dynamic Programming
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- LeetCode 152. Maximum Product Subarray (最大乘积子数组)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- Java for LeetCode 152 Maximum Product Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- leetcode 152. Maximum Product Subarray --------- java
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- C#解leetcode 152. Maximum Product Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- [leetcode]152. Maximum Product Subarray最大乘积子数组
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- Leetcode#152 Maximum Product Subarray
原题地址 简单动态规划,跟最大子串和类似. 一维状态空间可以经过压缩变成常数空间. 代码: int maxProduct(int A[], int n) { ) ; ]; ]; ]; ; i > ...
随机推荐
- Bugku-CTF之flag在index里
Day15 flag在index里 http://123.206.87.240:8005/post/
- [转载]Linux 16进制查看命令、工具
转自:https://blog.csdn.net/chenglian_999/article/details/4672177 2009年10月14日 21:45:00 chenglian_999 阅读 ...
- 使用python+hadoop-streaming编写hadoop处理程序
Hadoop Streaming提供了一个便于进行MapReduce编程的工具包,使用它可以基于一些可执行命令.脚本语言或其他编程语言来实现Mapper和 Reducer,从而充分利用Hadoop并行 ...
- Nginx教程--02.Nginx虚拟主机的配置
1.Nginx虚拟主机的配置 1.1 在conf目录下,使用命令 : vim nginx.conf 对上图解释: //全局区 worker _processes 1; //表示当前有1个工作的子进程, ...
- TypeScript作业
题目: 了解神话故事盘古开天辟地或者女娲开世造物,通过typescript程序模拟出天地的变化过程或者万物的衍生过程 参考博客园大神: https://www.cnblogs.com/tansm/p/ ...
- WordCount基本功能
WordCount基本功能 码云地址:https://gitee.com/Joker_zou/WordCount.git 一.项目需求 WordCount的需求可以概括为:对程序设计语言源文件统计字符 ...
- 7.10 其他面向对象设计原则1: 开-闭原则OCP
其他面向对象设计原则1: 开-闭原则OCP Open-Closed Principle (OCP)5.1 设计变坏的前兆 Signs of Rotting Design 僵硬性 Rigidit ...
- IDEA-------破解方法
① 到这个地方下载 IntelliJ IDEA 注册码:http://idea.lanyus.com/ 就是这个jar包:JetbrainsCrack-2.6.10-release-enc.jar ...
- java语言规范,main方法必须声明为public
注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...
- python - 基础知识,if语句
一.认识计算机 计算机是一个高度集成的电子电路. 组成:CPU(中央处理器).内存 .主板 .电源(心脏) .显示器 .键盘 .鼠标 .显卡(NAVID,AMD) .硬盘 操作系统 :Windo ...