这道题尽管是上一道题的增强。可是反而简单了。

能够交易无数次,可是买卖必须成对的出现。

为了简单起见。我用abc三股股票来说明,且忽略掉相等的情况。三个数一共同拥有六种大小关系。注意他们之间的先后顺序是不能乱的。

1. a<b<c。

这样的情况下的最大收益是c-a,c-a=(c-b)+(b-a)。连续的大于,依次算差。加起来即可了。

2. b<a<c。

即中间那股小,最大收益是c-b。由于a入b出赔钱,a入c出收益少。

3. a<c<b。

最大收益b-a.

4. b<c<a。最大收益c-b.

5. c<a<b。

最大收益b-a。

6. c<b<a。最大收益0。

好的,你已经看出来了,仅仅要当相邻的两个数是后面一个较大时,就之间累计上他们的差,否则,pass。直观一点的表述,仅仅要有钱赚就立刻出手。即使后面更贵,那也能够理解成前面的一次卖出后立刻买入,最大的收益依旧累积。对于不相邻的情况。事实上跟相邻情况是全然一样的。

代码很easy:

class Solution {
public:
int maxProfit(vector<int> &prices) {
if(prices.size() == 0)
return 0;
int res = 0;
for(int i=0;i<prices.size()-1;i++){
if(prices[i+1]>prices[i])
res += prices[i+1] - prices[i];
}
return res;
}
};

leetcode第一刷_Best Time to Buy and Sell Stock II的更多相关文章

  1. leetcode第一刷_Best Time to Buy and Sell Stock III

    这道题还是挺难的,属于我前面提到的,给个数组,线性时间找出个什么东西,尽管上面的两个买卖股票也是这类.只是相比之下稚嫩多了.有关至少至多的问题比較烦人,不好想,等再做一些题,可能会发现什么规律.这道题 ...

  2. leetcode第一刷_Best Time to Buy and Sell Stock

    这样的题就不要去考虑N^2的算法了.肯定会超时的.乍一看,非常可能会想到贪心,可是普通的贪心思路是不行的,比方想找到一个最小值用来买入.尽管它跟最大值之间的差一定是最好的,可是最大值出如今它前面就不行 ...

  3. 【刷题-LeetCode】122 Best Time to Buy and Sell Stock II

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  4. 【一天一道LeetCode】#122. Best Time to Buy and Sell Stock II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Say you ...

  5. leetcode:122. Best Time to Buy and Sell Stock II(java)解答

    转载请注明出处:z_zhaojun的博客 原文地址 题目地址 Best Time to Buy and Sell Stock II Say you have an array for which th ...

  6. 【LeetCode OJ】Best Time to Buy and Sell Stock II

    Problem Link: http://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/ We solve this prob ...

  7. 【LeetCode】122.Best Time to Buy and Sell Stock II 解题报告(Java & Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  8. LeetCode OJ 122. Best Time to Buy and Sell Stock II

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  9. 【LeetCode】122. Best Time to Buy and Sell Stock II

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

随机推荐

  1. 将ByteArrayOutputStream类型变量中的数据存储到文件中

    代码: File zipFile=new File("c:\\1.zip");ByteArrayOutputStream byteOSZip = new ByteArrayOutp ...

  2. 51nod 125乘法逆元 (扩展欧几里得)

    给出2个数M和N(M < N),且M与N互质.找出一个数K满足0 < K < N且K * M % N = 1,假设有多个满足条件的.输出最小的. Input 输入2个数M, N中间用 ...

  3. react-native 项目实战 -- 新闻客户端(5) -- 完善首页列表数据

    1.Home.js: /** * 首页 */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, T ...

  4. DNS主从服务器

    一.目的: 我们知道,DNS服务器在网络服务中可能出现故障当机等状况,会导致DNS服务瘫痪,显然在实际的网络应用中我们不希望出现这种状况,所有我们就要配置从 服务器来在主DNS服务器出现故障时代替他来 ...

  5. JavaScript历史状态管理

    1.API (1)history.pushState:能够在不加载新页面的情况下改变浏览器的 URL history.pushState({name:"Nicholas"}, &q ...

  6. Hbase笔记1-2

    吴超1.1 Hbase是Hadoop中的数据库,Hadoop还需要数据库吗?我们学的Hadoop是一个分布式的存储和计算的平台为什么要在他上面建一个数据库呢,数据库是干什么的呢,数据库是一个管理系统( ...

  7. 【SpringMVC学习09】SpringMVC与前台的json数据交互

    json数据格式在接口调用中.html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍.在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springm ...

  8. android收起软键盘

    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);if(imm != null) ...

  9. Android_Fragment_Fragment详解

      Android_Fragment_Fragment详解 分类: Android基础2013-10-03 08:23 92人阅读 评论(0) 收藏 举报 AndroidFragmentFragmen ...

  10. springboot学习(一) spring-boot是什么

    1.简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 2.主要优点 ①  使配置变得简单 ②  使编码变得简单 ③  使 ...