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;}
}

转载于:https://www.cnblogs.com/blfbuaa/p/7371563.html

LeetCode_Maximum Subarray | Maximum Product Subarray相关推荐

  1. 【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大

    Add Date 2014-09-23 Maximum Product Subarray Find the contiguous subarray within an array (containin ...

  2. LeetCode 152. Maximum Product Subarray

    152. Maximum Product Subarray Find the contiguous subarray within an array (containing at least one ...

  3. 【LeetCode】152. Maximum Product Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  4. Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. LeetCode Maximum Product Subarray(最大子数组乘积)

     Find the contiguous subarray within an array (containing at least one number) which has the large ...

  6. 子数组的最大乘积 Maximum Product Subarray

    为什么80%的码农都做不了架构师?>>>    问题: Find the contiguous subarray within an array (containing at lea ...

  7. LeetCode: Maximum Product Subarray

    很久没练只能看别人代码了 1 class Solution { 2 public: 3 int maxProduct(int A[], int n) { 4 if (n == 0) return 0; ...

  8. leetcode 152. Maximum Product Subarray | 152. 乘积最大子数组(Java)

    题目 https://leetcode.com/problems/maximum-product-subarray/ 题解 class Solution {public int maxProduct( ...

  9. LeetCode Maximum Product Subarray 解题报告

    LeetCode 新题又更新了.求:最大子数组乘积. https://oj.leetcode.com/problems/maximum-product-subarray/ 题目分析:求一个数组,连续子 ...

  10. LeetCode 152. Maximum Product Subarray--动态规划--C++,Python解法

    题目地址:Maximum Product Subarray - LeetCode Given an integer array nums, find the contiguous subarray w ...

最新文章

  1. 转:c# 根据当前时间获取,本周,本月,本季度,月初,月末,各个时间段
  2. 使用 udev 进行动态内核设备管理(转自suse文档)
  3. ToString() 格式化字符串总结
  4. ECMA学习小结(3)——constructor 和 prototype
  5. Exynos4412 IIC总线驱动开发(二)—— IIC 驱动开发
  6. 俞永福卸任阿里大文娱董事长,改任 eWTP 投资组长
  7. 实现贝叶斯分类器_从头开始在Python中实现高斯朴素贝叶斯
  8. Android中的ANR问题
  9. creo 计算机配置,creo电脑配置要求 creo电脑配置推荐
  10. android pie mi 3 tab,前沿科技:三星Galaxy Tab S3和Tab A(2017)正在获得Android 9.0 Pie更新
  11. mac邮箱无法验证账户名和密码问题
  12. 170817 WarGames-Natas(15)
  13. JAVA实训8:期末总结
  14. 路由器 dhcp服务器的作用,你可知道在路由器中DHCP是什么吗
  15. 别害羞,开源社区真的很需要你,教你如何参与开源社区~
  16. 冬瓜哥对时间和空间的理解方式—时空参悟(下)
  17. 小程序组件Painter的使用心得
  18. 年会模板汇总:PPT、策划案、游戏节目、流程、邀请函、背景音乐、主题词
  19. lnk306dn引脚功能_LNK306DN LED卤素灯驱动器开关电源
  20. 二级Python 考试,不知道这些事,你就过不去了。

热门文章

  1. 计算机网络工程税率多少,弱电工程增值税6%、9%、13%税率怎样选择?
  2. python检测excel是否打开_Python: 如何判断远程服务器上Excel文件是否被人打开
  3. python房屋租赁系统的设计与实现_基于ssh的房屋租赁系统的设计与实现(含源文件)...
  4. JavaScript学习笔记 - 提升
  5. Activity与Service之间交互并播放歌曲
  6. IOS开发—UIGestureRecognizer Tutorial in iOS 5: Pinch
  7. Android ImageButton单击切换按钮图片效果
  8. 安装Office SharePoint Server 2010实战
  9. CISCO寄存器配置与说明
  10. SAMBA最简单的配置方法