题解 | #最大差值# c++& java& Python3

//本题用动态规划求解
//定义一维数组dp【n】为 从开始到 以第n个元素为b的最大差值 
//理解了dp的定义 , 记录最大值返回即可

import java.util.*;

public class Solution {
    public int getDis (int[] A, int n) {
        // write code here
        int[] dp = new int[n];
        dp[0] = 0;
        int min = A[0];
        int ans = 0;
        for (int i = 1; i < n; i++) {
            if (min > A[i-1]){
                min = A[i-1];
            }
            dp[i] = A[i] - min;
            ans = max(dp[i],ans);
        }
        return ans;
    }
    public static int max(int a, int b) {
        return (a >= b) ? a : b;
    }
}
//c++
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param A int整型vector
     * @param n int整型
     * @return int整型
     */
    int getDis(std::vector<int>& A, int n) {
        // write code here
        int dp[n];
        dp[0] = 0;
        int min = A[0];
        int res = 0;
        for (int i = 1; i < n; ++i) {
            if (A[i - 1] < min) {
                min =  A[i - 1];
            }
            dp[i] = A[i] - min;
            res = res > dp[i] ? res : dp[i];
        }
        return res;
    }
};

//python3
class Solution:
    def getDis(self , A: List[int], n: int) -> int:
        dp = [0] * n
        min = A[0]
        res = 0
        count = 1
        for i in  A[1:] :
            if min > i:
                min = i
            dp[count] = i -min
            res = max(res,dp[count])
            count +=1
        return res

#动态规划#
动态规划题解 文章被收录于专栏

个人动态规划题解合集

全部评论

相关推荐

07-23 22:01
已编辑
梧州学院 Java
第一次面试,广东小厂,太紧张了,感觉机会不是很大,很多地方说得不好。面了二十分钟接下来是面试问的问题1.介绍一下项目,有什么功能太紧张了,回答有点卡壳2.了解的数据库有哪些,说一下MySQL的索引优化我说了一下索引的知识,但是没了解过索引优化,然后他让我自由发挥说一下我了解的MySQL知识,后面讲了数据库的事务,隔离级别,索引的b+树,太紧张,很多都没说出来,卡住了,让他下一个问题。3.spring&nbsp;cloud里面有哪些组件跟组件的作用讲了,nacos,sentinel,gateway,负载均衡,openfeign4.MinIO做文件存储,如果有十个g的上传,应该如何提高上传和下载的效率这个不会,没了解过,只说了用mq提高响应速度5.redis在项目中起到什么样的作用缓存热门信息,做排行榜,redis分布式锁做限制请求6.redis怎么保证跟数据库一致性这个答得不好7.怎么提高接口的响应速度只说了慢sql和mq8.怎么理解Java中的多态举例只说了重载跟重写9.介绍一下springioc和aop10.bean的生命周期这两个还可以八股问完了,我问面试评价,说我太紧张了,可以放松一些(确实第一次面试,听录音回放全程在鹅鹅鹅饿,感觉过不了),问我能不能接受出差,可能去深圳做技术支持,问我多久到岗,问他主要工作内容是负责开发吗,他说可能有部分时间不在公司要去出差。应该是挂了,叫我过两天等通知。
想当java高手:报喜,面试已经通过了,准备下周一入职,月薪3000
查看10道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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