题解 | #最大差值#

最大差值

https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204

思路:动态规划,dp[i]记录当前A[i]的最大差值
dp[i] = Max(dp[i-1],A[i]-Min(A[0],...A[n-1]))
最后返回dp数组的最后一个值即可

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A int整型一维数组
     * @param n int整型
     * @return int整型
     */
    public int getDis (int[] A, int n) {
        // write code here
        int length = A.length;
//        保存最大差值
        int[] dp = new int[length];
        dp[0] = 0;
        int min = A[0];
        for (int i = 1; i < length; i++) {
            dp[i] = Math.max(dp[i - 1], A[i] - min);
            if (A[i] < min) {
                min = A[i];
            }
        }
        return dp[length - 1];
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务