算法理解1-买卖股票的最佳时机II

题目:买卖股票的最佳时机 II(题号122)

题目描述

重点思路

  • 题目最终是问一个最大利润,言外之意就是不需要给出具体怎么操作,怎么买卖,这其实是降低了题目的难度
  • 一般遇到这种只需要获取一个最大值的问题,首先考虑一下贪心算法

贪心算法

我理解的贪心算法,其实不是一个具体的算法,也就是没有具体的公式,不像动态规划等算法有一套专门的公式,更重要的就是结合实际进行分析。

百度百科定义

在这里插入图片描述

本题思路

对于本题,要求出很多天的一个综合最大利润。根据贪心算法思路,我们可以拆解问题,我们只需要一天天获取最大利润,这样我们每一天都获得最大利润,那我们最终就可以获得最大利润,这样想突然就简单了,就拿我们买股票来说,我们肯定希望我们每一波上涨都可以赶上(我们很贪心),因此,我们只要计算所有上涨的钱,就是我们可能的最大利润啦

JAVA代码

class Solution {
    public int maxProfit(int[] prices) {
        int result=0;
        int n = prices.length;
        for (int i = 1;i<n;i++){
            //比较相邻两天,看有没有上涨,上涨了我们就当做自己的利润
            if(prices[i]-prices[i-1]>0){
                //总利润中加入这一波上涨
                result += prices[i]-prices[i-1];
            }
        }
        return result;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值