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

牛群买卖计划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,如果是则直接返回0,因为无法进行交易获取利润。然后初始化变量t为最后一个价格prices[prices.length - 1]

使用倒序循环遍历数组prices,从倒数第二个元素开始向前遍历。在每一次循环中,如果当前价格prices[i]小于变量t,则计算差值(即卖出价格减去买入价格)并加到ans中;否则更新变量t为当前价格prices[i],表示以当前价格作为买入价继续追踪。

返回计算得到的ans作为结果,即为所求的最大利润。

全部评论

相关推荐

10-15 15:00
潍坊学院 golang
跨考小白:这又不是官方
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
头像
昨天 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务