Java LeetCode714。株式を売買するのに最適な時期には、手数料が含まれます。

整数配列の価格が与えられた場合、i番目の要素はi日目の株価を表し、負でない整数の料金は株式の取引料金を表します。
取引は無期限に完了できますが、取引ごとに手数料を支払う必要があります。すでに株を購入している場合は、売却する前に株を購入することはできません。
得られた最大利益を返します。
注:ここでの取引とは、株式の売買の全過程を指し、取引ごとに手数料を支払うだけです。
例1:
入力:価格= [1、3、2、8、4、9]、手数料= 2
出力:8
説明:達成できる最大の利益:
ここで購入価格[0] = 1
ここで販売価格[ 3] = 8
ここで購入価格[4] = 4
ここで販売価格[5] = 9
総利益:((8-1)-2)+((9-4)-2)= 8。

クラスソリューション{ publicint maxProfit(int [] price、int fee){ int pr_0 = 0; int pr_1 = Integer.MIN_VALUE;


    for(int i=0;i<prices.length;i++){
        pr_0 = Math.max(pr_0,pr_1+prices[i]);
        pr_1 = Math.max(pr_1,pr_0-prices[i]-fee);
    }

    return pr_0;
}

}

おすすめ

転載: blog.csdn.net/sakura_wmh/article/details/111601663