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

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

https://www.nowcoder.com/practice/351b87e53d0d44928f4de9b6217d36bb

import java.util.Scanner;

// 动态规划的二维数组解题
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();
        int[] nums = new int[n];
        for(int i = 0; i < n;i++){
            nums[i] = in.nextInt();
        }
        System.out.println(run(n,nums));
    }

    public static int run(int n,int[] nums){
        if(n == 1||n == 0){
            return 0;
        }

        int[][] dp = new int[n][2];
        dp[0][0] = -nums[0];
        dp[0][1] = 0;

        for(int i = 1;i < n;i++){
            dp[i][0] = Math.max(dp[i-1][0] , -nums[i]);
            dp[i][1] = Math.max(dp[i-1][0] + nums[i] , dp[i-1][1]);
        }

        return dp[n-1][1];
    }
}

全部评论

相关推荐

认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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