题解 | #买卖股票的最好时机(三)#

买卖股票的最好时机(三)

http://www.nowcoder.com/practice/4892d3ff304a4880b7a89ba01f48daf9



public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 两次交易所能获得的最大收益
     * @param prices int整型一维数组 股票每一天的价格
     * @return int整型
     */
    public int maxProfit (int[] prices) {
        // write code here
         if(prices == null || prices.length <=1 ){
            return 0;
        }
        int n = prices.length;
        //f[i] 代表第i天 到第n天卖出的最高价
       //记录了从i点到之后的一次交易的最大收益
        //也就是卖出的最大收益
        int[] f= new int[n];
        int max = prices[n-1];
        f[n-1] = 0;
        for(int i = n-2;i >=0;i--){
            max = Math.max(max,prices[i]);
            f[i] = Math.max(f[i+1],max - prices[i]);
        }
        int result = 0 ;
        int min = Integer.MAX_VALUE;
        for(int i = 0;i< n-1;i++){
            //这里记录买入的最低价格
            min = Math.min(min, prices[i]);
            result = Math.max(result, prices[i] - min + f[i]);
        }
        return result;
    }
}
全部评论

相关推荐

01-07 07:54
已编辑
门头沟学院 前端工程师
点赞 评论 收藏
分享
醒工硬件:1学校那里把xxxxx学院去了,加了学院看着就不像本校 2简历实习和项目稍微精简一下。字太多,面试官看着累 3第一个实习格式和第二个实习不一样。建议换行 4项目描述太详细了,你快把原理图贴上来了。比如可以这样描述:使用yyyy芯片,使用xx拓扑,使用pwm控制频率与占空比,进行了了mos/电感/变压器选型,实现了xx功能 建议把技术栈和你做的较为有亮点的工作归纳出来 5熟悉正反激这个是真的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务