题解 | #牛群买卖计划III# java

牛群买卖计划III

https://www.nowcoder.com/practice/47ce4c953769468e8b8b727af3cbebf5

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param prices int整型一维数组
     * @return int整型
     */
    public int maxProfitIII (int[] prices) {
        // write code here
        int ans = 0;
        if (prices.length <= 1) {
            return 0;
        }
        int t = prices[prices.length - 1];
        for (int i = prices.length - 2; i >= 0; i--) {
            if (prices[i] < t) {
                ans += t - prices[i];
            } else {
                t = prices[i];
            }
        }
        return ans;
    }
}

该代码使用的编程语言是Java。

该题考察的知识点是买卖问题,计算最大利润。

代码的详细文字解释如下:

  1. 定义一个函数maxProfitIII,接受一个整型向量prices作为参数,表示每天的价格。
  2. 初始化变量ans为0,表示最大利润。
  3. 如果prices的长度小于等于1,即只有一天或没有价格数据,则返回0。
  4. 将变量t初始化为prices中最后一天的价格。
  5. 从倒数第二天开始往前遍历prices数组,对于每一天的价格prices[i],进行如下操作:如果当前价格比t小,说明可以在当天买入并在最后一天卖出,利润为t - prices[i],将利润累加到ans中。否则,更新t为当前价格,表示重新选择买入的时机。
  6. 遍历结束后,返回最大利润ans
全部评论

相关推荐

小浪_Coding:个人技能一条测试没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务