908. 最小差值 I( 数学规律 + 数组求最值 )( Java8新特性 StreamAPI )

【Unity3D】RTS Engine 笔记一 RTS Engine 中配置一个新场景, 初步认识GameManager、设置地形以及配置地形网格搜索 阅读详情

908. 最小差值 I

Question

在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/smallest-range-i/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Ideas

1、Answer( Java )

解法思路:数学规律 + 数组求最值

⚡️ public static IntStream stream(int[] array)

返回顺序 IntStream 与指定的数组作为源。

⚡️ Optional<T> max(Comparator<? super T> comparator)

根据提供的 Comparator 返回此流的最大元素。

⚡️ Optional<T> min(Comparator<? super T> comparator)

根据提供的 Comparator 返回此流的最小元素。

⚡️ Class OptionalInt

一个可能含有也可能不包含 int 值的容器对象。 如果值存在, isPresent() 将返回 true 和 getAsInt() 将返回值。

⚡️ public int getAsInt()

如果 OptionalInt 中存在值,则返回值,否则抛出 NoSuchElementException 。

⚡️ public boolean isPresent()

返回 true 如果有值存在,否则 false 。

Code①( 循环遍历求最值 )

/**
 * @author Listen 1024
 * @description 908. 最小差值 I( 数学规律 + 数组求最值 )
 * 时间复杂度 O(n) (需要 O(n) 的时间遍历数组 nums 得到最小值和最大值,然后需要 O(1) 的时间计算最低分数)(其中 n 是整数数组 nums 的长度)
 * 空间复杂度 O(1)
 * @date 2022-04-30 9:07
 */
class Solution {
    public int smallestRangeI(int[] nums, int k) {
        int res = 0;
        int maxNum = nums[0], minNum = nums[0];
        for (int num : nums) {
            maxNum = Math.max(maxNum, num);
            minNum = Math.min(minNum, num);
        }
		//方式一
		/*
        if (maxNum - minNum <= 2 * k) {
            return 0;
        } else {
            res = maxNum - minNum - 2 * k;
            return res;
        }
        */
        //方式二
        return Math.max(0, maxNum - minNum - 2 * k);
    }
}
时间复杂度 O(n) (需要 O(n) 的时间遍历数组 nums 得到最小值和最大值,然后需要 O(1) 的时间计算最低分数)(其中 n 是整数数组 nums 的长度)
空间复杂度 O(1)

Code②( 数组排序求最值 )

/**
 * @author Listen 1024
 * @description 908. 最小差值 I( 数学规律 + 数组求最值 )
 * 时间复杂度 O(n) (需要 O(n) 的时间遍历数组 nums 得到最小值和最大值,然后需要 O(1) 的时间计算最低分数)(其中 n 是整数数组 nums 的长度)
 * 空间复杂度 O(1)
 * @date 2022-04-30 9:07
 */
class Solution {
    public int smallestRangeI(int[] nums, int k) {
        Arrays.sort(nums);
        return Math.max(0, nums[nums.length - 1] - nums[0] - 2 * k);
    }
}

Code③( 调用API求最值 )

/**
 * @author Listen 1024
 * @description 908. 最小差值 I( 数学规律 + 数组求最值 )
 * 时间复杂度 O(n) (需要 O(n) 的时间遍历数组 nums 得到最小值和最大值,然后需要 O(1) 的时间计算最低分数)(其中 n 是整数数组 nums 的长度)
 * 空间复杂度 O(1)
 * @date 2022-04-30 9:07
 */
class Solution {
    public int smallestRangeI(int[] nums, int k) {
        return Math.max(0, Arrays.stream(nums).max().getAsInt() - Arrays.stream(nums).min().getAsInt() - 2 * k);
    }
}
//部分题解参考链接(如侵删)
https://leetcode-cn.com/problems/smallest-range-i/solution/zui-xiao-chai-zhi-i-by-leetcode-solution-7lcl/
166、Sim2Real中的强化学习:域随机化与鲁棒策略 第二,训练时监控每个随机化维度对策略梯度的贡献,如果某个维度对loss的方差贡献极小,说明策略已经忽略它了,要么加大范围,要么删掉。第四,如果条件允许,用真实数据来校准随机化分布——采集真机上的传感器数据,拟合出参数分布,再把这个分布作为随机化的采样依据,这比拍脑袋定范围靠谱得多。动态随机化是很多人忽略的维度。域随机化的核心思想说白了就一句话:别去精确建模现实,而是把仿真环境本身变成一个随机分布的集合,让策略在“各种乱七八糟的物理参数”里都见过世面,这样到了真机上,不管现实落在哪个参数区间,策略都能兜住。 阅读详情

相关推荐

DSP28335笔记——内部Flash中进行数据读写(Flash_API的使用)

Program时的报错返回值较为常见,对返回值30、31进行详解:返回值为30:每次操作写入16位的字节,直到Buffer中的数据全部写入,若写入的数据位超过16位时则返回值30。返回值为31:表示尝试将已有数据位上的0写成1。一般情况下,在Program操作之前,会将指定部分中的数据进行擦除;但擦除函数执行时间较久,且只能以扇区为单位进行擦除,因此也可以在已有数据的基础上再进行Program,但无法将已有数据的位中的0值写成1。

m0_46621336的博客 8750

Java8中Stream流求最大值最小值

【代码】Java8中Stream流求最大值最小值。

qq_43842093的博客 2万+

切比雪夫插值

切比雪夫插值是一种基于切比雪夫节点的多项式插值方法,其优势是减少插值误差(特别是龙格现象:表现为高维插值时在边缘处插值误差骤增)。本文对其基本操作进行说明。

平和少年的博客 1646

Java最小差值leetcode

给你一个整数数组 nums,和一个整数 k 。 在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。 nums 的 分数 是 nums 中最大和最小元素的差值。 在对 nums 中的每个索引最多应用一次上述操作后,返回 nums 的最低 分数 。 class Solution { public

qq_42900213的博客 487

ERDAS 2022与ArcGIS共存安装教程:如何避免端口冲突(详细配置步骤)

本文提供了一份详细的ERDAS 2022与ArcGIS共存安装教程,核心在于解决两者因FlexNet许可证服务器导致的端口冲突问题。通过分步指导,包括检查现有端口占用、修改ERDAS许可证文件端口号、配置防火墙及客户端设置,确保两款专业GIS与遥感软件能在同一系统上稳定运行。

weixin_29279047的博客 253

如何用Arduino和HX711压力传感器制作一个简易电子秤(含OLED显示)

本文详细介绍了如何使用Arduino、HX711压力传感器和OLED显示屏制作一个简易电子秤。从硬件连接到软件编程,提供了分步教程,包括核心元件功能解析、接线方法、库安装、模块测试以及关键的校准流程。项目实践性强,适合创客和DIY爱好者学习嵌入式系统与传感器应用。

tea88的博客 536

CCF-最小差值(Java实现)

问题描述   给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式   输入第一行包含一个整数n。   第二行包含n个正整数,相邻整数之间使用一个空格分隔。 输出格式   输出一个整数,表示答案。 样例输入 5 1 5 4 8 20 样例输出 1 样例说明 ...

yong_zi的博客 1509

飞牛NAS+Docker打造私人IPTV直播源:手把手教你部署iptv-api

本文详细介绍了如何在飞牛NAS上通过Docker部署iptv-api,打造私人IPTV直播源。从SSH配置到Docker容器部署,手把手教你实现自动更新直播源、多终端支持的解决方案,适用于Kodi、PotPlayer等播放器,提升家庭娱乐体验。

earth的博客 5577

JAVA练习212-最小差

给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出:3,即数值对(11, 8) 提示: 1 <= a.length, b.length <= 100000 -2147483648 <= a[i], b[i] <= 2147483647 正确结果在区间 [0, 2147483647] 内 分析: 方法:排序+双指针 由于两个数

qq_48772498的博客 1914

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4516

QT实现计算器(C/C++)

digitClicked()槽函数用于处理数字按钮的点击事件,operatorClicked()槽函数用于处理运算符按钮的点击事件,equalsClicked()槽函数用于处理等号按钮的点击事件。在operatorClicked()槽函数中,我们获取被点击按钮的文本作为当前运算符,并将文本框中的内容转换为双精度浮点数,存储为操作数1。在上述代码中,我们添加了一个私有成员变量m_operand1,用于存储第一个操作数的值,以及一个私有成员变量m_currentOperator,用于存储当前运算符的值。

CyberNova的博客 385

JAVA练习259-最小差值 I

题目概述 给你一个整数数组 nums,和一个整数 k 。 在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。 nums 的 分数 是 nums 中最大和最小元素的差值。 在对 nums 中的每个索引最多应用一次上述操作后,返回 nums 的最低 分数 。 示例 1: 输入:nums = [1], k

qq_48772498的博客 618

Coze智能体开发:扣子智能体设置多Agent模式

在扣子中创建智能体后,智能体默认使用单 Agent 模式。在单 Agent 模式下处理复杂任务时,你必须编写非常详细和冗长的提示词,而且你可能需要添加各种插件和工作流等,这增加了调试智能体的复杂性。调试时任何一处细节改动,都有可能影响到智能体的整体功能,实际处理用户任务时,处理结果可能与预期效果有较大出入。

王国平的博客 3712

Java实现-最小差

给定两个整数数组(第一个是数组 A,第二个是数组 B),在数组 A 中取 A[i],数组 B 中取 B[j],A[i] 和 B[j]两者的差越小越好(|A[i] - B[j]|)。返回最小差。 您在真实的面试中是否遇到过这个题?  Yes 样例 给定数组 A = [3,4,6,7], B = [2,3,8,9],返回 0。 挑战 

Narasimha_Karumanchi 1373

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java 随机长度10位数组,输入两个数字,找出差值最小的

import java.util.Scanner; public class Randm { public static void main(String[] args) { int [] a = new int [10]; for(int i = 0; i < a.length; i++){ a[i] = (int)(100* Math.random()); Sy

戈多 1997

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

算法--微软面试题:求一个整数数组元素间最小差值

Q题目 有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数.

Java仗剑走天涯 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

算法-根据输入数组,用后一个值减去前一值得到差值,找出最大的差值(Java)

贪心算法: 根据输入数组,返回后一个值减去前一值的差值,找出最大的值(注意先后顺序) package algorithm; import java.util.Arrays; public class Greedy { public static void main(String[] args) { int[] prices = {7, 9, 1, 5, 3, 6, 4}; int max = getMaxProfit(prices); .

se-tester的专栏 1345

算法--06年华为面试:求两个数组的最小差值(Java实现)

Q题目华为06年面试题(要求8分钟完成)

Java仗剑走天涯 8944

IDEA提示 'Optional.get()' without 'isPresent()' check错误。

Optional

fofabu2的博客 3万+

idea提示‘OptionalInt.getAsInt()‘ without ‘isPresent()‘ check

参数:String[] strings 提示详情: 当strings是空的时候就会抛出异常: 修改方法: 这样当strings是空的时候会返回0,程序稳健性更好。

lgz0921的博客 2839

利用ArrayList对map进行按key(键)和按value (值) 排序

利用ArrayList对map进行按key(键)和按value (值) 排序 总感觉按照值得应该比较少,意义好像也不大,感觉还没有真正懂。 使用比较器 按key(键)排序 通过ArrayList将map.entrySet(),变成list 然后在类外写具体如何比较大小的方法compare(),最后调用 Collections.sort(list, new Comparator<Map.Entry<String, String>>() import java.util.*; pub

qq_41487251的博客 5309

JAVA程序设计:查询差绝对值的最小值(LeetCode:1906)

一个数组 a的 差绝对值的最小值定义为:0 <= i < j < a.length且 a[i] != a[j]的 |a[i] - a[j]| 的 最小值。如果 a中所有元素都 相同,那么差绝对值的最小值为 -1。 比方说,数组[5,2,3,7,2]差绝对值的最小值是|2 - 3| = 1。注意答案不为 0,因为a[i] 和a[j]必须不相等。 给你一个整数数组nums和查询数组queries,其中queries[i] = [li, ri]。对于每...

信仰.的博客 1438

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 284

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 346

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 126

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 197
上一篇: 417. 太平洋大西洋水流问题(DFS + BFS + 方向数组)
下一篇: 1305. 两棵二叉搜索树中的所有元素( 二叉搜索树中序遍历 + 归并排序 )
Listen 1024
博客等级 码龄6年 24粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值