zoukankan      html  css  js  c++  java
  • 714. 买卖股票的最佳时机含手续费-动态规划

    package Leetcode;
    /**
     * 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。
    
    你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。
    
    返回获得利润的最大值。
    
    注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。
     */
    public class maxProfitFee {
        public static void main(String[] args) {
            int []prices={1,3,2,8,4,9};
            int fee=2;
            System.out.println(maxProfit(prices, fee));    
            
        }
        //dp设置直接设置成prices行两列就行,分开不好算
        public static int maxProfit(int[] prices, int fee) {
    
            int [][]dp=new int[prices.length][2];
            dp[0][0]=0;
            dp[0][1]=-prices[0];
    
            for(int i=1;i<prices.length;i++){
                dp[i][0]=Math.max(dp[i-1][1]+prices[i]-fee,dp[i-1][0]);
                dp[i][1]=Math.max(dp[i-1][1], dp[i-1][0]-prices[i]);
            }
            
            return dp[prices.length-1][0];
        }
        
    }
  • 相关阅读:
    Spring IOC知识点一网打尽
    Spring中-IOC-Bean的初始化-循环依赖的解决
    原型模式(Prototype)
    生成器模式
    工厂模式
    单例模式
    查询性能优化
    索引
    sql游标的使用入门
    js和C#中的编码和解码
  • 原文地址:https://www.cnblogs.com/jieyi/p/14148851.html
Copyright © 2011-2022 走看看