LeetCode 910. 最小差值 II(贪心)

1. 题目

给定一个整数数组 A,对于每个整数 A[i],我们可以选择 x = -K 或是 x = K,并将 x 加到 A[i] 中。

在此过程之后,我们得到一些数组 B。

返回 B 的最大值和 B 的最小值之间可能存在的最小差值

示例 1:
输入:A = [1], K = 0
输出:0
解释:B = [1]示例 2:
输入:A = [0,10], K = 2
输出:6
解释:B = [2,8]示例 3:
输入:A = [1,3,6], K = 3
输出:3
解释:B = [4,6,3]提示:
1 <= A.length <= 10000
0 <= A[i] <= 10000
0 <= K <= 10000

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

2. 解题

类似题目:LeetCode 908. 最小差值 I

  • 首先 都向一侧偏移,差值就是max-min
  • 部分偏移的话,排序以后,左侧小的+K,右侧大的-K,才可能得到更小的差值
  • 遍历所有的分割点
    在这里插入图片描述
class Solution { // c++
public:int smallestRangeII(vector<int>& A, int K) {sort(A.begin(), A.end());int i, n = A.size(), up, down;int mindis = INT_MAX;for(i = 0; i < n-1; i++){up = max(A[i]+K, A[n-1]-K);down = min(A[0]+K, A[i+1]-K);mindis = min(mindis, up-down);}return min(mindis, A[n-1]-A[0]);//第二种情况为同侧偏置}
};

68 ms 15 MB

class Solution: # py3def smallestRangeII(self, A: List[int], K: int) -> int:A.sort()mindis = float("inf")n = len(A)for i in range(n-1):up = max(A[i]+K, A[n-1]-K)down = min(A[0]+K, A[i+1]-K)mindis = min(mindis, up-down)return min(mindis, A[n-1]-A[0])# 第二种情况为同侧偏置

212 ms 14.9 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行业分析-实战价值方法

都是工作中总结的方法&#xff0c;可能理论基础不是那么高大上&#xff0c;但是非常有实战价值。 1.行业研究维度 2.行业景气度 3.行业间关系(敏感性计算) 4.行业成长性

mysql 8.0.11-Windows (x86, 64-bit)下载地址与安装教程

1.下载安装包 Windows (x86, 64-bit), ZIP Archive官网下载安装包 点击链接&#xff0c;进入如下页面---点击Download下载---解压到目录&#xff08;例如E:\program\mysql-8.0.11-winx64&#xff09;2.添加配置文件my.ini 在目录E:\program\mysql-8.0.11-winx64下&#xff1a; …

Excel - 添加趋势线,显示趋势线公式 - 进行行业投融资曲线拟合

1.准备数据 本次是以人工智能行业为例&#xff0c;数据范围是2012年4月到2017年11月的&#xff0c;这是去年的时候采集的&#xff0c;这次就直接拿来用了&#xff0c;不影响曲线拟合的操作过程。但是想使用最新的数据的话&#xff0c;你也可以像我一样用火车头采集器采集最新的…

windows电脑快捷键大全 - 高手总是很酷的

1. WindowsL键&#xff0c;直接锁屏&#xff0c;这样就不用担心电脑的资料外泄了 2. 一般人会先找到“我的电脑”&#xff0c;然后点击打开&#xff0c;而高手总是很酷的&#xff0c; WindowsE键&#xff0c;直接打开电脑的资源管理器 3. 直接按下 WindowsD键&#xff0c…

Linux常用工具小结:(2) Mysql的rpm安装和编译安装

Mysql的rpm安装 1&#xff0c; 下载。 这里下载http://dev.mysql.com/downloads/mirror.php?id402502。 2&#xff0c; 安装。 下载到本地解压&#xff1a; tar -xvf MySQL-5.5.12-1.rhel5.x86_64.tar 安装以下rpm rpm -ivh MySQL-devel-5.5.12-1.rhel5.x86_64.rpm rpm -ivh M…

Power BI 的 最佳搭档 Excel(基础数据分析)

Powerbi和Excel l Power BI 和 Excel 本节将向你介绍将 Excel 工作薄导入 Power BI 是多么简单&#xff0c;并演示 Power BI 和 Excel 如何展现最佳搭档气质。 以下主题将指导你使用简单的表格将 Excel 工作薄上传到 Power BI。 然后你将了解如何上传使用 Excel 更高级的 B…

降维方法 -简直太全- 附Python代码(Random Forest、Factor Analysis、corr、PCA、ICA、IOSMA

为什么要降维&#xff1f; 建模初期&#xff0c;我们往往只有几个指标&#xff0c;这个时候不太涉及到降维&#xff0c;但是一个月后你就发现&#xff0c;模型的指标越来越多&#xff0c;从原有的五六个指标一步一步变成 100 个指标。100 个很多吗&#xff1f;不多&#xff01…

CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...

上次发布的&#xff1a;CYQ.DBImport V1.0的相关介绍&#xff1a;CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 本次发布的V2.0 版本&#xff0c;准备突击海外&#xff0c;下面为相关的介绍。 一&#xff1a;新版本2.0的新增功能介绍 1&#xff1a;修正GUID的脚本错误2…

Power BI 如何获取数据做可视化

获 取 数 据 l 获取数据 Power BI Desktop 可连接到种类广泛的多种数据源&#xff0c;包括本地数据库、Excel 工作表和云服务等。 它可帮助清理数据和设置数据格式&#xff0c;以使数据更为有用&#xff0c;包括拆分和重命名列、更改数据类型和处理日期。还可创建列之间的关…

Power BI 将商业智能数据转换为数据理解

l 研究数据 在本部分中你要了解各种知识&#xff0c;并且积极的互动和进行 Power BI 共享在这一部分至关重要。 Power BI 服务简介 Power BI 服务是 Power BI Desktop 的自然扩展&#xff0c;其功能包括上传报表、创建仪表板&#xff0c;以及使用自然语言对数据进行提问。该服…

LeetCode 554. 砖墙(map计数)

1. 题目 你的面前有一堵方形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。 砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。 如果你画的线只是从砖块的边缘经过&#xff0c;就不算穿…

Power BI 数据可视化(核心),让报表更生动

可 视 化 l 可视化 Power BI 中的视觉对象简介 实现数据可视化是 Power BI 的核心部分&#xff08;像我们在本课程前面所定义那样&#xff0c;它是基本的构建基块&#xff09;&#xff0c;而创建视觉对象是发现并共享你的见解的最简方法。 Power BI 默认提供众多可视化效果…

Power BI数据建模

l 建模 通常情况下&#xff0c;你将会连接到多个数据源以创建报表&#xff0c;且需所有数据协同工作。 建模就是实现这一点的办法。 若要创建不同数据源之间的逻辑连接&#xff0c;需创建一种关系。 数据源之间的关系使 Power BI 能够了解表与表之间的关系&#xff0c;以便能…

Power BI 数据可视化软件实现共享报表

l 在 Power BI 中与同事共享和协作 在此模块中&#xff0c;涵盖各种用于与同事共享和协作处理仪表板、报表和数据的方法。例如&#xff0c;你可以&#xff1a; 从 Power BI Desktop 向 Power BI 服务发布报表使用 Power BI Mobile 应用查看共享报表和仪表板并与其交互创建打包…

非线性规划 - 用非线性规划解决问题 - (Lingo建模)

在经营管理中&#xff0c;为取得更高的利润&#xff0c;不仅需要提高经营收入&#xff0c;也要考虑如何在现有的人力、物力和财力条件下合理安排&#xff0c;在满足要求的前提下&#xff0c;达到最低的成本。对于静态的最优化问题&#xff08;即所有数据不会瞬息万变&#xff0…

PHP学习之路(二)让我们开始环境搭建(Windows篇)

在上篇中&#xff0c;我详述了在Windows下配置Zend开发工具的详细过程&#xff0c;但是没有一个开发环境&#xff0c;你再牛B的工具自然也跑不起来&#xff0c;比如没有了.NET Framework&#xff0c;你跑个Visual Studio试试&#xff0c;所以搭建开发环境也是学习程序开发一个必…

线性规划 - 用单纯形法解决整数规划问题 - (Matlab、Lingo建模)

现实生活中&#xff0c;比如机器的台数&#xff0c;参与工作的人数&#xff0c;可调动的车辆数&#xff0c;这些数据都是整数。因此对于变量中包含整数、或者完全是整数的规划问题&#xff0c;我们称之为整数规划。在解决整数规划常用的算法便是单纯形法。 课题名称&#xff1a…

Oracle 多表 连接 顺序 与 性能关系 测试

一. 创建表并insert 数据 create table ta (id number,name varchar2(10)); create table tb(id number,job varchar2(10)); begin for i in 1..1000000 loop begin insert into ta values(i,dave); commit; end; end loop; end; begin for i in 1..1000000 loop begin if i<…

线性规划 - 用单纯形法解决LP问题 - (Matlab、Lingo建模)

线性规划研究时间较早&#xff0c;在实际应用中也比较成熟&#xff0c;它是一种辅助人们进行科学管理的数学方法&#xff0c;为合理地利用有限的人力、物力、财力等资源作出的最优决策&#xff0c;提供科学的依据。 课题名称&#xff1a;配货问题&#xff0c;使运费收入最大 现…

微软Webcast课程下载软件iReaper正式登陆Android平台

微软Webcast课程下载软件iReaper正式登陆Android平台&#xff0c;我叫它iReaper for Android。目前正处于测试阶段&#xff0c;功能比较单一。 目前支持 1.视频下载 2.课程代码下载 3.讲义下载 4.问答下载 附上截图&#xff0c;敬请期待&#xff01; 1.下载地址&#xff…