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. 根据传入url请求,返回json字符串
  2. python的pip安装-pip安装python库的方法总结
  3. beanstalkd php扩展,PHP操作Beanstalkd队列(1)安装与基础
  4. Linux rpm 命令参数使用详解[介绍和应用]
  5. 第十八天:规划风险管理和识别风险
  6. linux ed 命令的用法
  7. SpringBoot编写HelloWorld-new
  8. php 获取服务器,PHP 获取服务器详细信息
  9. Spark Windows
  10. hdu 1134 卡特兰数(大数模板)
  11. 单/多文档的窗体类属性修改(VC_MFC)
  12. 身份证丢失后信息安全亟需上锁
  13. SQL:pgsql创建、查询、删除索引
  14. 下标随着页面链接的跳转
  15. 基于selenium的python浏览器脚本制作教程
  16. 【机器学习】:朴素贝叶斯
  17. zkteco iface702 中控考勤机java开发步骤一---连接考勤机
  18. 谷歌浏览器快速保存整个网页的方法
  19. NFT带给我们普通人的机遇是什么?
  20. python实现一个简单的猜数游戏

热门文章

  1. php是哪种化学药剂,常用化学试剂 英文缩写一览表
  2. mysql表空间查看及创建
  3. Excel中CONCATENATE函数生成SQL insert 语句
  4. 浏览器文件分段断点上传简单示例(python 篇)
  5. 51Nod 1002 数字三角形 Label:水水水 非学习区警告
  6. 深圳端午节骑行活动,欢迎大家参加
  7. 操作系统面试知识复习
  8. python网络编程01/网络协议
  9. android adb.exe端口占用
  10. Python笔记--Numpy的shape