仅能操作一次时,需每次观察是否有为负情况置零。多次操作时,仅需判断是否后者大于前者。

leetcode 53、121、122

【代码】

class Solution {
public int maxSubArray(int[] nums) {
  int sum=Integer.MIN_VALUE;
  int cur=0;
  for(int i=0;i<nums.length;i++){
    cur+=nums[i];
    sum=Math.max(sum,cur);
    cur=cur>0?cur:0;
  }
  return sum;
  }
}

【一次交易】

class Solution {
  public int maxProfit(int[] prices) {
  int cur=0;
  int sum=0;
  for(int i=1;i<prices.length;i++){
    cur+=prices[i]-prices[i-1];
    sum=Math.max(sum,cur);
    cur=cur>0?cur:0;
  }
  return sum;
  }
}

【多次交易】

public int maxProfit(int[] prices) {
  int len=prices.length;
  int win=0;
  for(int i=1;i<len;i++){
    if(prices[i-1]<prices[i]){
    win+=prices[i]-prices[i-1];
    }
  }
  return win;
}

[整理]Kadane算法的更多相关文章

  1. Kadane算法

    Kadane算法用于解决连续子数组最大和问题,我们用ci来表示数组a[0...i]的最大和. 观察可以发现当ci-1 < 0时,ci = ai.用e表示以当前为结束的子数组的最大和,以替代数组c ...

  2. 前端面试整理——javascript算法和测试题

    (1)算法: 1.斐波那契数列:1.1.2.3.5.8.13.21.输入n,输出数列中第n位数的值. 方案一: function fn(n){ var num1 = 1, num2= 1, num3 ...

  3. [leetcode121]股票买卖 Best Time to Buy and Sell Kadane算法

    [题目] Say you have an array for which the ith element is the price of a given stock on day i. If you ...

  4. 矩阵求和及Kadane算法

    今天的一道题目: https://leetcode.com/problems/max-sum-of-sub-matrix-no-larger-than-k/ 有难度.这一类题目很有代表性. 搜到这个网 ...

  5. 最大子段和的DP算法设计及其效率测试

    表情包形象取自番剧<猫咪日常> 那我也整一个 曾几何时,笔者是个对算法这个概念漠不关心的人,由衷地感觉它就是一种和奥数一样华而不实的存在,即便不使用任何算法的思想我一样能写出能跑的程序 直 ...

  6. java面试问题整理-垃圾回收

    对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址.大小以及使用情况.通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象,通过这种方式确定哪些对象是"可达的" ...

  7. 淘宝SKU组合查询算法实现

    淘宝SKU组合查询算法实现 2015-11-14 16:18 1140人阅读 评论(0) 收藏 举报  分类: JavaScript(14)    目录(?)[+]   前端有多少事情可以做,能做到多 ...

  8. NOIP算法总结

    前言 离NOIP还有一个星期,匆忙的把寒假整理的算法补充完善,看着当时的整理觉得那时还年少.第二页贴了几张从贴吧里找来的图片,看着就很热血的.旁边的同学都劝我不要再放PASCAL啊什么的了,毕竟我们的 ...

  9. 九章算法系列(#5 Linked List)-课堂笔记

    前言 又是很长时间才回来发一篇博客,前一个月确实因为杂七杂八的事情影响了很多,现在还是到了大火燃眉毛的时候了,也应该开始继续整理一下算法的思路了.Linked List大家应该是特别熟悉不过的了,因为 ...

随机推荐

  1. 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat

    注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...

  2. jmap -histo pid 输出的[C [B [I [S 的含义

    JMAP 输出 其中: [C is a char[][S is a short[][I is a int[][B is a byte[][[I is a int[][]

  3. HeadFirst Ruby 第九章总结 mixins & modules

    前言 如果想要复用 method, 可用的方法是针对 Class 的 inheritance,但是, inheritance has its limitations,它的缺点有: 只能 inhert ...

  4. InitializingBean和DisposableBean

    InitializingBean 记住一点:InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的子类,在初始化bea ...

  5. dynamic遇上ADO.NET

    传说中的dynamic dynamic是个不合群.不按规则办事的家伙,可以说是个异形,但更恐怖的是它又是无所不知的,任何事情都难不了它(咳咳,它似乎与Lambda表达式是死对头).这令人想起<死 ...

  6. CentOS7 下源代码安装mysql5.6

    ###### mysql ######### 引言:这里选用mysql5.6版本,5.7版本编译时间需要几个小时. 编译安装环境: yum -y install make gcc-c++ cmake ...

  7. cmd下可以启动java,输入javac提示 不“存在”

    方法:手动把JDK安装目录的bin目录配置到PATH环境变量里

  8. 在线linux 平台

    1.http://www.shiyanlou.com/[实验楼] 2.http://bellard.org/jslinux/[大牛平台]

  9. Web测试要点

    由于本人工作接触Web测试,所以我从网上找的资料,学习了解web测试哪些内容,然后自己整理汇总的随笔,如文章中有不足的地方,请大家多多指教:或者文章内容与他人相似,望见谅.   web是什么?(转载: ...

  10. java压缩流

    java压缩流是为了减少传输时的数据量,可以将文件压缩成ZIP.JAR.GZIP等文件格式.