购买股票,股票价格趋势是一个数组,如下

[2, 3, 5, 6, 1, 9]

题目意思是,第一天一股 2 元,第二天一股 3 元, 第三天一股 5 元, 第四天一股 6 元,第五天一股 1 元,第六天一股 9 元

只允许买入一次, 卖出一次

问哪一天买入,哪一天卖出赚的最多,最多一股赚多少钱?

# Java

package com.example.demo.system;
public class Test9 {
    public static void main(String[] args) {
        int[] priceArr = {1, 4, 5, 2, 6, 9, 7};
        int maxProfit = 0;
        int buyDay = 0;
        int sellDay = 0;
        for(int i=0; i < priceArr.length; i++){
            int buyPrice = priceArr[i];
            for(int j=i+1; j<priceArr.length; j++){
                int sellPrice = priceArr[j];
                int currentProfit = sellPrice - buyPrice;
                if (maxProfit < currentProfit){
                    maxProfit = currentProfit;
                    buyDay = i+1;
                    sellDay = j+1;
                }
            }
        }
        System.out.println("第 " + buyDay + " 天购买,");
        System.out.println("第 " + sellDay + " 天卖出,");
        System.out.println("最大利润每股是:" + maxProfit + " 元!");
    }
}

输出:

第 1 天购买,
第 6 天卖出,
最大利润每股是:8 元!

# Python

if __name__ == '__main__':
    # 第三天买入,第五天卖出,每股可赚 6 元
    # 下标对应数组 2,4
    price_list = [2, 4, 1, 5, 7, 2]   # 模拟每天股价走势
    sell_days = len(price_list)
    max_profit = 0
    buy_day = 0
    sell_day = 0
    for i in range(sell_days):
        buy_day_price = price_list[i]
        for j in range(sell_days):
            sell_day_price = price_list[j]
            if i < j:
                current_profit = sell_day_price - buy_day_price
                if max_profit < current_profit:
                    max_profit = current_profit
                    buy_day = i
                    sell_day = j
    if max_profit > 0:
        print(f"建议第 {buy_day + 1} 天购买")
        print(f"建议第 {sell_day + 1} 天卖出")
        print(f"最大利润是每股赚:{max_profit}元")
    else:
        print("不建议买,都亏")

输出:

建议第 3 天购买
建议第 5 天卖出
最大利润是每股赚:6元
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Jalen Chu 微信支付

微信支付

Jalen Chu 支付宝

支付宝

Jalen Chu 公众号

公众号