LeetCode_Maximum Subarray | Maximum Product Subarray
Maximum Subarray
一、题目描写叙述
就是求一个数组的最大子序列
二、思路及代码
首先我们想到暴力破解
public class Solution {
public int maxSubArray(int[] nums) {
int sum = Integer.MIN_VALUE;
for(int i=0; i<nums.length; i++)
for(int j=i+1; j<nums.length; j++)
sum = Math.min(nums[i]+nums[j], sum);
return sum;
}
}
果然TLE了。于是要找到合适的时间复杂度。所以再寻找时间复杂度小于N平方的。
所以我们想到既然要求最大子序列,那么我们在扫面累加数组元素时,推断之前的元素是否小于0。假设小于0。说明不用累加了,由于会“拖累”后边求和的值。于是演变成了动态规划问题。递推公式就是maxSum=Math.max(maxSum,curSumi)。
当中 curSumi 就是到第 i 个数字时最大的和值。
public class Solution {
public int maxSubArray(int[] nums) {
int sum = nums[0], maxSum = nums[0];
for(int i=1; i<nums.length; i++) {
if(sum < 0) sum = 0; //推断之前的sum能否够利用
sum += nums[i];
maxSum = Math.max(sum, maxSum);
}
return maxSum;
}
}
Maximum Product Subarray
一、题目描写叙述
二、代码及思路
思路与上道题有所不同。这里要求是求乘积,那么乘积有个最简单的性质:负负得正;
那么假设套用上面那道题的思路,当前最小值假设是负值,假设下一个也是负值。就非常可能成为一个非常大的正值。
所以我们这里须要两个保存当前最小值和最大值的局部变量。
public class Solution {
public int maxProduct(int[] nums) {
int localMaxProduct = nums[0], localMinProduct = nums[0], maxProduct = nums[0];
for(int i=1; i<nums.length; i++) {
int copy_localMinProduct = localMinProduct;
localMinProduct = Math.min(Math.min(nums[i]*copy_localMinProduct, nums[i]*localMaxProduct), nums[i]);
localMaxProduct = Math.max(Math.max(nums[i]*copy_localMinProduct, nums[i]*localMaxProduct), nums[i]);
maxProduct = Math.max(localMaxProduct, maxProduct);
}
return maxProduct;
}
}
LeetCode_Maximum Subarray | Maximum Product Subarray的更多相关文章
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- LeetCode: Maximum Product Subarray && Maximum Subarray &子序列相关
Maximum Product Subarray Title: Find the contiguous subarray within an array (containing at least on ...
- LeetCode Maximum Product Subarray(枚举)
LeetCode Maximum Product Subarray Description Given a sequence of integers S = {S1, S2, . . . , Sn}, ...
- 【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大
Add Date 2014-09-23 Maximum Product Subarray Find the contiguous subarray within an array (containin ...
- leetcode 53. Maximum Subarray 、152. Maximum Product Subarray
53. Maximum Subarray 之前的值小于0就不加了.dp[i]表示以i结尾当前的最大和,所以需要用一个变量保存最大值. 动态规划的方法: class Solution { public: ...
- 【刷题-LeetCode】152 Maximum Product Subarray
Maximum Product Subarray Given an integer array nums, find the contiguous subarray within an array ( ...
- 152. Maximum Product Subarray - LeetCode
Question 152. Maximum Product Subarray Solution 题目大意:求数列中连续子序列的最大连乘积 思路:动态规划实现,现在动态规划理解的还不透,照着公式往上套的 ...
- [LeetCode] Maximum Product Subarray 求最大子数组乘积
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- [LeetCode]152. Maximum Product Subarray
This a task that asks u to compute the maximum product from a continue subarray. However, you need t ...
随机推荐
- Thymeleaf select 数据回显 选中
<select style='width: 148.15px' name="dlrlx" th:field="*{Ygdly.dlrlx}"> &l ...
- mysql导入sql脚本
例如:我的用户名是root 密码是123 sql脚本存在C盘 名字为test.sql 数据库为test 有两种方法可以执行脚本 1:打开CMD输入以下命令(不需要转换目录)>mysql -u r ...
- mysql数据库性能测试报告
网上有写的好的模板, 直接复链接了: 1. http://blog.csdn.net/mituan1234567/article/details/45247989 2. https://msdn.mi ...
- SAP+ 差旅报销集成方案的实现
跨国集团通常都会有一个财务共享中心SSC的集中处理业务部门,用于统计来自各个公司的差旅报销,而1).传统的OA审批 虽然审批流是优势存在着需要SAP数据二次录入,数据不同步等困难,2).如果终端用户都 ...
- (笔记)Mysql命令alter add:增加表的字段
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4 ...
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...
- NetBeans IDE集成Maven
NetBeans6.7更新版本已经内置对Maven支持.如遇以前的版本,Maven插件在插件管理器中可用.我们正在使用NetBeans在这个例子中使用6.9. 在NetBeans一些特点如下 您可以从 ...
- e789. 限制用JSpinner实现数字选择的值
// Create a number spinner that only handles values in the range [0,100] int min = 0; int max = 100; ...
- js方法传入对象;js方法传入方法;js方法回调 callback
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- TI单节电量计基本介绍及常见问题解答
电量计(gas gauge /fuel gauge)是用来计量显示电池电量,通常包括mAh剩余容量(RM),满充容量(FCC),百分比容量(SOC),电压,电流,温度等,部分电量计还包含放空,充满时间 ...