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.行业成长性

java中finalizer终结方法学习心得

最近在看java的中finalizer终结方法&#xff0c;也就是用来释放内存的&#xff0c;但这绝对和C中的析构函数不相同 C中的析构函数是用来回收对象所占用的资源的方法&#xff0c;而在java中&#xff0c;当一个对象不可到达时&#xff08;也就是重堆栈和静态存储区开始&#xff0…

LeetCode 1296. 划分数组为连续数字的集合(map模拟)

1. 题目 给你一个整数数组 nums 和一个正整数 k&#xff0c;请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。 如果可以&#xff0c;请返回 True&#xff1b;否则&#xff0c;返回 False。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3,3,4,4,5,6], k …

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; …

LeetCode 1291. 顺次数(模拟)

1. 题目 我们定义「顺次数」为&#xff1a;每一位上的数字都比前一位上的数字大 1 的整数。 请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表&#xff08;从小到大排序&#xff09;。 示例 1&#xff1a; 输出&#xff1a;low 100, high 300 输出&#xff1a;[1…

织梦(DEDECMS)首页调用相关投票的方法(自动更新)

我使用的是 DEDECMS V5.3 方法一 此方法我没试过&#xff0c;但应该能行得通。 dede投票模块在首页的调用 本文介绍dedecms投票模块在首页的调用方法&#xff0c;大家可以参考写出更符合自己需要的效果。 先来看dedecms默认模板里的投票模块在首页调用的代码&#xff1a; <!…

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

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

LeetCode 1169. 查询无效交易

1. 题目 如果出现下述两种情况&#xff0c;交易 可能无效&#xff1a; 交易金额超过 1000或者&#xff0c;它和另一个城市中同名的另一笔交易相隔不超过 60 分钟&#xff08;包含 60 分钟整&#xff09; 每个交易字符串 transactions[i] 由一些用逗号分隔的值组成&#xff0…

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…

LeetCode 718. 最长重复子数组(DP)

1. 题目 给两个整数数组 A 和 B &#xff0c;返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 说明: 1 < len(A), len(B) < 1000 0 < A[i], B[i] < 100来源&am…

在C#中运用 SQLite

在C#中运用 SQLite 作者&#xff1a;IcyCoffee 来源&#xff1a;blog.csdn.net/icycoffee 时间&#xff1a;2010-3-8 【 字体&#xff1a;大 中 小 】 〖 双击滚屏 〗 SQLite 是一个嵌入式的联系数据库系统&#xff0c;运用十分广泛。在一些数据量不大的运用 程序中&…

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

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

LeetCode 1268. 搜索推荐系统(Trie树/multiset)

1. 题目 给你一个产品数组 products 和一个字符串 searchWord &#xff0c;products 数组中每个产品都是一个字符串。 请你设计一个推荐系统&#xff0c;在依次输入单词 searchWord 的每一个字母后&#xff0c;推荐 products 数组中前缀与 searchWord 相同的最多三个产品。 如…

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;包括拆分和重命名列、更改数据类型和处理日期。还可创建列之间的关…

LeetCode 1234. 替换子串得到平衡字符串(滑动窗口)

1. 题目 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符&#xff0c;且长度为 n 的字符串。 假如在该字符串中&#xff0c;这四个字符都恰好出现 n/4 次&#xff0c;那么它就是一个「平衡字符串」。 给你一个这样的字符串 s&#xff0c;请通过「替换一个子串」的方式&am…

asp.net mvc 实现文件管理参考资料

1、http://www.cnblogs.com/chsword/archive/2009/03/17/aspnetmvcfilemanagement.html 2、http://www.0812ok.com/app/blog/info.aspx?bid221转载于:https://www.cnblogs.com/cuiwenke/archive/2011/05/30/2063264.html

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

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