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

买卖股票的最好时机

http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

package org.example.test;

public class DynamicTest {
    /**
     * dp[] 定义为以 i 为结尾的最大收益。
     * 算法公式为:
     * if (dp[i - 1] < 0) {
     *     dp[i] = prices[i] - prices[i - 1];
     * } else {
     *     dp[i] = prices[i] - (prices[i - 1] - dp[i - 1]);
     * }
     *
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        // write code here
        int length = prices.length;
        if (length == 1) {
            return 0;
        }
        int[] dp = new int[length];
        dp[0] = 0;
        dp[1] = prices[1] - prices[0];
        int max = dp[1];
        for (int i = 2; i < length; i++) {
            if (dp[i - 1] < 0) {
                dp[i] = prices[i] - prices[i - 1];
            } else {
                dp[i] = prices[i] - (prices[i - 1] - dp[i - 1]);
            }
            max = Math.max(max, dp[i]);
        }
        return Math.max(max, 0);
    }
}
算法 文章被收录于专栏

数据结构和算法

全部评论

相关推荐

卡卡罗特ovo:说起云智我就来气,约好了一面,结果面试官没来,ssob上问hr也未读,我还是专门请了半天假在家面试,恶心死了
点赞 评论 收藏
分享
03-06 20:09
贵州大学 Java
King987:你这个学历找个中大厂刷实习经历都是可以的,但是项目要有亮点才行,这个什么外卖就不要做了,去找找最新的项目,至少涉及高并发或者是新型的AI技术mcp rag啥的 ,我在出简历点评,但是你这个没什么好点评的,内容太少,而且含金量太低。自己改一改吧,或者看一下我的项目地址中,那里有大厂最近做过的实习项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务