当前位置: 首页 > article >正文

每日OJ_牛客_MT1最大差值_模拟+贪心_C++_Java

目录

牛客_MT1最大差值_模拟+贪心

题目解析

C++代码

Java代码


牛客_MT1最大差值_模拟+贪心

最大差值_牛客题霸_牛客网

描述:

有一个长为 n 的数组 A ,求满足 0 ≤ a ≤ b < n 的 A[b] - A[a] 的最大值。

给定数组 A 及它的大小 n ,请返回最大差值。

数据范围: 2<n≤2∗10^5,数组中的值满足 0≤∣val∣≤5∗10^8


题目解析

遍历数组的过程中,使用一个变量标记一下当前位置之前所有元素的最小值即可。

C++代码

class Solution {
public:
    int getDis(vector<int>& A, int n) {
        // vector<int> arr(n, 0x3f3f3f3f); // 维护一个0到i的最小值
        // arr[0] = A[0];
        // int res = 0;
        // for(int i = 1; i < n; ++i)
        // {
        //     arr[i] = min(arr[i - 1], A[i]); // 可以用一个变量代替
        //     res = max(res, A[i] - arr[i]);
        // }
        // return res;

        int res = 0, prevMin = A[0];
        for(int i = 1; i < n; ++i)
        {
            prevMin = min(prevMin, A[i]);
            res = max(res, A[i] - prevMin);
        }
        return res;
    }
};

Java代码

import java.util.*;
public class Solution
{
    public int getDis (int[] arr, int n) 
    {
        int ret = 0;
        int minPrev = arr[0];
        for(int i = 1; i < n; i++)
        {
            minPrev = Math.min(minPrev, arr[i]);
            ret = Math.max(ret, arr[i] - minPrev);
        }
        return ret;
    }
}

http://www.kler.cn/a/594282.html

相关文章:

  • 超详细正则表达式逐字解析!!!
  • 更改 docker0 IP
  • 【python】OpenCV—Template Matching
  • 科技查新和查收查引有什么区别?
  • 9、Python collections模块高效数据结构
  • react 中 key 的使用
  • 比特币牛市还在不在
  • 高级java每日一道面试题-2025年3月05日-微服务篇[Eureka篇]-Eureka在微服务架构中的角色?
  • 2025-03-20 学习记录--C/C++-C 库函数 - toupper()、tolower()、 isspace()
  • 用vue3显示websocket的状态
  • yum软件包乾坤大挪移(Yum Package Qiankun Great Migration)
  • 传统服务部署、虚拟化部署与云原生部署资源消耗对比与优化指南
  • SVN完全指南
  • 【Java/数据结构】队列(Quque)
  • java NIO中的FileSystems工具类可以读取本地文件系统,ZIP/JAR等,无需解压处理,还可以复制文件
  • Unity 云渲染本地部署方案
  • 大白话详细解读函数之柯里化
  • 策略模式 vs. 工厂模式:对比与分析
  • 【git】git管理规范--分支命名规范、CommitMessage规范
  • Microchip AN1477中关于LLC数字补偿器的疑问