zoukankan      html  css  js  c++  java
  • 123. Best Time to Buy and Sell Stock III

    欢迎fork and star:Nowcoder-Repository-github

    123. Best Time to Buy and Sell Stock III

    题目

    Say you have an array for which the ith element is the price of a given stock on day i.
    
    Design an algorithm to find the maximum profit. You may complete at most two transactions.
    
    Note:
    You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
    

    解析

    //Buy and Sell Stock iii
    class Solution_123 {
    public:
    	int maxProfit(vector<int> &prices) {
    
    		//1.买一次相当于减一个数,
    		//2.买卖两次维持当前最大的收益
    
    		int buy1 = INT_MIN, sell1 = 0;
    		int buy2 = INT_MIN, sell2 = 0;
    
    		for (int i = 0; i < prices.size();i++)
    		{
    			buy1 = max(buy1, -prices[i]);
    			sell1 = max(sell1, buy1 + prices[i]); //一次买卖现有的收益
    
    			buy2 = max(buy2, sell1 - prices[i]); //又要使用一些钱
    			sell2 = max(sell2, buy2 + prices[i]);
    		}
    		return sell2;
    	}
    };
    
    
  • 相关阅读:
    BaseJob
    BaseWorkerForm
    MainForm()
    OperationSystemForm
    Job1
    ExeCuteManager
    ThreadPool
    LogEntry
    java学习阶段一 常量
    java学习阶段一 数据类型
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/8194166.html
Copyright © 2011-2022 走看看