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

【从零开始的LeetCode-算法】910. 最小差值 II

给你一个整数数组 nums,和一个整数 k 。

对于每个下标 i0 <= i < nums.length),将 nums[i] 变成 nums[i] + k 或 nums[i] - k 。

nums 的 分数 是 nums 中最大元素和最小元素的差值。

在更改每个下标对应的值之后,返回 nums 的最小 分数 。

示例 1:

输入:nums = [1], k = 0
输出:0
解释:分数 = max(nums) - min(nums) = 1 - 1 = 0 。

示例 2:

输入:nums = [0,10], k = 2
输出:6
解释:将数组变为 [2, 8] 。分数 = max(nums) - min(nums) = 8 - 2 = 6 。

示例 3:

输入:nums = [1,3,6], k = 3
输出:3
解释:将数组变为 [4, 6, 3] 。分数 = max(nums) - min(nums) = 6 - 3 = 3 。

提示:

  • 1 <= nums.length <= 10^4
  • 0 <= nums[i] <= 10^4
  • 0 <= k <= 10^4

我的解答:

class Solution {
    public int smallestRangeII(int[] nums, int k) {
        
        Arrays.sort(nums);
        int min_num = nums[0],max_num = nums[nums.length - 1];
        int res = max_num - min_num;  
        for(int i = 0;i < nums.length - 1; i++){
            int a = nums[i],b = nums[i + 1];
            res = Math.min(res,Math.max(max_num - k,a + k) - Math.min(min_num + k, b - k));
        }
        return res;
    }
}


http://www.kler.cn/news/359560.html

相关文章:

  • OWASP Top 10 漏洞详解:基础知识、面试常问问题与实际应用
  • 用PYTHON可视化分析热门MEMECOIN的代码思路参考。
  • 【Vue】项目部署本地部署和服务器部署
  • 【VUE】Vue中的 keep-alive 组件
  • Java 剪枝搜索
  • 168K+ Star!AutoGPT:一个构建、部署和运行AI代理的强大平台
  • 005_django基于Python的乡村居民信息管理系统设计与实现2024_106f2qg9
  • SA优化GRU回归预测(matlab代码)
  • upload-labs靶场Pass-02
  • 在MySQL中为啥引入批量键访问(Batch Key Access, BKA)
  • 【计算机网络原理】GBN,SR,TCP区别以及案例介绍
  • 第 6 章 Kafka-Eagle 监控 和 Kafka-Kraft 模式
  • AI图像处理工具:开发者高阶用法与最佳实践
  • JavaWeb——Maven(2/8):概述-介绍安装(步骤、具体操作、测试)
  • Leetcode 3194. 最小元素和最大元素的最小平均值
  • 05,hive
  • Linux:进程状态
  • Unity 同项目多开
  • 数智合同 | 业财一体与履约联动的数字化转型
  • RabbitMQ系列学习笔记(七)--RabbitMQ交换机