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

【Leetcode 每日一题】624. 数组列表中的最大距离

问题背景

给定 m m m 个数组,每个数组都已经按照升序排好序了。
现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a a a b b b 之间的距离定义为它们差的绝对值 ∣ a − b ∣ |a-b| ab
返回最大距离。

数据约束

  • m = a r r a y s . l e n g t h m = arrays.length m=arrays.length
  • 2 ≤ m ≤ 1 0 5 2 \le m \le 10 ^ 5 2m105
  • 1 ≤ a r r a y s [ i ] . l e n g t h ≤ 500 1 \le arrays[i].length \le 500 1arrays[i].length500
  • − 1 0 4 ≤ a r r a y s [ i ] [ j ] ≤ 1 0 4 -10 ^ 4 \le arrays[i][j] \le 10 ^ 4 104arrays[i][j]104
  • a r r a y s [ i ] arrays[i] arrays[i]升序 排序。
  • 所有数组中最多有 1 0 5 10 ^ 5 105 个整数。

解题过程

自己没轻易地实现出一组只有一个数的效果,还没意识到减法可能溢出,鉴定为题做少了。

具体实现

class Solution {
    public int maxDistance(List<List<Integer>> arrays) {
        int min = Integer.MAX_VALUE >> 1;
        int max = Integer.MIN_VALUE >> 1;
        int res = 0;
        for (List<Integer> array : arrays) {
            int cur1 = array.get(0);
            int cur2 = array.get(array.size() - 1);
            res = Math.max(res, Math.max(cur2 - min, max - cur1));
            min = Math.min(min, cur1);
            max = Math.max(max, cur2);
        }
        return res;
    }
}

相关文章:

  • Scrapy分布式爬虫系统
  • docker 镜像迁移到另一个服务器
  • android,flutter 混合开发,通信,传参
  • 【组态PLC】基于西门子s7-200和博图v16组态王16停车厂带烟雾报警【含PLC组态源码 M004期】
  • 一周学会Flask3 Python Web开发-http响应状态码
  • rtcwake - Linux下定时唤醒计算机
  • 【部署优化篇二】《DeepSeek服务化部署:RESTful/gRPC接口设计》
  • swupdate升级的核心机制
  • OSPF(开放路径最短优先)
  • FastGPT快速将消息发送至飞书
  • Windows桌面系统管理7:国产操作系统与Linux操作系统
  • 选项式和组合式有什么区别
  • 汇编语言与接口技术--矩阵按键
  • Go语言入门指南
  • HTTPS协议
  • 设计模式 - 单例模式
  • C Primer Plus第五章习题
  • 如何通过Bigemap Pro实现面合并和相交
  • 强化学习能让小模型多恐怖?
  • 文献阅读 250219-Global water availability boosted by vegetation-driven changes (1)
  • 讲座预告|以危机为视角解读全球治理
  • 浙江省台州市政协原副主席林虹被“双开”
  • 黑龙江省政府副秘书长许振宇,拟任正厅级领导
  • 今年有望投产里程已近3000公里,高铁冲刺谁在“狂飙”?
  • “一百零一个愿望——汉字艺术展”亮相意大利威尼斯
  • 在稳市场稳预期下,投资者教育给了散户更多底气