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

每日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;
    }
}

相关文章:

  • 基于大模型的喉癌全程预测与治疗方案优化研究报告
  • 春秋云境刷题1
  • 从0到1入门AOP
  • Spring中的循环依赖问题是什么?
  • 企业级 GitLab 开发流程全解
  • 一文读懂 EtherNET/IP 转 Modbus RTU 网关
  • 观察者模式详解:用 Qt 信号与槽机制深入理解
  • 博客图床 VsCode + PigGo + 阿里云OSS
  • 传统会议室接入神旗视讯-2 Android会议室大屏设备 (Maxhub, Newline, TCL等)
  • GraphCube、Spark和深度学习技术赋能快消行业关键运营环节
  • HTML CSS
  • Springdoc配置参数详解
  • WPS表格导入CSV文件(适合处理数据库导出数据)
  • html5表格实战-跨行跨列
  • 【分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取
  • 系统分析师论文《论业务流程分析方法及其应用》
  • Linux的Shell编程
  • 【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现生物识别(指纹识别)应用
  • Vala编程语言教程-语法和注释
  • Channel-wise Knowledge Distillation for Dense Prediction论文阅读和
  • 上任后首访,德国总理与法国总统举行会晤
  • 央行:将支持资本市场两项货币政策工具的额度合并使用
  • 江西浮梁县县长张汉坤被查,此前已有4个月无公开活动
  • 最长3个月免费住宿,南昌人才驿站(洪漂驿站)申请指南发布
  • 浙江一文旅局长五一亲自带团,去年专门考取了导游证
  • 新加坡国会选举投票抽样结果公布,执政党已获超半数议席