zoukankan      html  css  js  c++  java
  • 力扣122题、714题(买卖股票)

    122、买卖股票的最佳时机II

    基本思想:

    贪心算法

    具体实现:

    最终利润可以分解

    第0天买入,第3天卖出,利润为:prices[3] - prices[0]

    相当于(prices[3] - prices[2])+(prices[2] - prices[1])+(prices[1] - prices[0])

    把利润分解为每天为单位的维度,而不是从0天到3天整体去考虑

    局部最优:收集每天的正利润

    全局最优:求得最大利润

    代码:

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

    714、买卖股票的最佳时机含手续费

    基本思想:

    贪心不会不会不会,,下面写的是一堆狗屎,希望我聪明了以后回来再看

    具体实现:

    买入日期:遇到更低点就记录

    卖出日期:只要当前价格大于最低价格+手续费,就可以收获利润

    情况1:收获利润的这一天并不是收获利润区间里的最后一天(没有卖出股票,是持有股票),后面还要继续收获利润

    情况2:前一天是收获利润区间里的最后一天(相当于卖出股票),今天重新记录最小价格

    情况3:不作操作,保持原有状态

    放到最小价格minPrice这里的值只有两种选择

    1.有利润·卖出以后,为了保证下一波的买入

    举例:

    prices = [1, 3, 2, 8, 4, 9], fee = 2

    第0天买入1,记录最低价格minPrice=1

    第1天股票为3,3 = minPrice + fee,没赚没亏,所以不用管,继续往后走

    第2天股票为2,2 <  minPrice + fee,卖掉的话会亏,

                               2 > minPrice,不适合买入

    第3天股票为8,8 > minPrice + fee,卖掉的话会赚,所以卖掉,并更新minPrice为(第3天股票-fee)= 6

    第4天股票为4,4 <  minPrice,更新 minPrice,适合买入

    第5天股票为9,9  > minPrice + fee,卖掉的话会赚,所以卖掉

    prices = [1,3,7,5,10,3], fee = 3

    第0天买入1,记录最低价格minPrice=1

    第1天股票为3,3 < minPrice + fee,卖掉的话会亏,所以不用管,继续往后走

            3 > minPrice,不适合买入

    第2天股票为7,7 > minPrice + fee,卖掉的话会赚,所以卖掉,并更新minPrice为(第2天股票-fee)= 4

    第3天股票为5,  5 < minPrice + fee,卖掉的话会亏,所以不用管,继续往后走

           5 > minPrice,不适合买入

    第4天股票为10,10 > minPrice + fee,卖掉的话会赚,所以卖掉,并更新minPrice为(第4天股票-fee)= 8

    第5天股票为3,3  < minPrice,适合买入

    代码:

  • 相关阅读:
    LeetCode OJ:Merge Two Sorted Lists(合并两个链表)
    LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)
    LeetCode OJ:Find Peak Element(寻找峰值元素)
    LeetCode OJ:Spiral MatrixII(螺旋矩阵II)
    LeetCode OJ:Longest Palindromic Substring(最长的回文字串)
    利用生产者消费者模型实现大文件的拷贝
    Linux下用c语言实现whereis.
    Huffman编码实现文件的压缩与解压缩。
    修改MySQL数据库存储位置datadir
    python中pickle简介
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/15435541.html
Copyright © 2011-2022 走看看