LeetCode945-使数组唯一的最小增量
2024-10-20 04:13:21
问题:使数组唯一的最小增量
给定整数数组 A,每次 move 操作将会选择任意 A[i]
,并将其递增 1
。
返回使 A
中的每个值都是唯一的最少操作次数。
示例 1:
输入:[1,2,2]
输出:1
解释:经过一次 move 操作,数组将变为 [1, 2, 3]。
示例 2:
输入:[3,2,1,2,1,7]
输出:6
解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。
可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。
提示:
0 <= A.length <= 40000
0 <= A[i] < 40000
链接:https://leetcode-cn.com/contest/weekly-contest-112/problems/minimum-increment-to-make-array-unique/
分析:
1.每次move会将一个数字值加一
2.最终每个数字都不一样
3.最终结果应该是唯一的
4.增加方式不唯一,但是等价,比如从1 4 变为4 5,可以是1+4,也可以是1+3,4+1
5.操作次数其实就是最终数列和减去初始数列和
那么将原序列排序,要求递增,且差值中至少1,如果本身值就比前一个大于1,则保持,否则增加为前一个数字值+1,统计累计加值即为最终结果。
AC Code:
class Solution {
public:
int minIncrementForUnique(vector<int>& A) {
int ret = ;
if (A.size() < )
{
return ;
}
sort(A.begin(), A.end());
int pre = A[];
for (int i = ; i < A.size(); i++)
{
if (A[i] <= pre)
{
ret += (pre + - A[i]);
pre += ;
}
else
{
pre = A[i];
}
} return ret;
}
};
其他:
第一code:
typedef long long ll;
typedef vector<int> VI;
typedef pair<int,int> PII; #define REP(i,s,t) for(int i=(s);i<(t);i++)
#define FILL(x,v) memset(x,v,sizeof(x)) const int INF = (int)1E9;
#define MAXN 100005 class Solution {
public:
int minIncrementForUnique(vector<int>& A) {
if (A.size() == ) return ;
sort(A.begin(), A.end());
int last = A[];
int ans = ;
REP(i,,A.size()) {
if (A[i] <= last) {
ans += last + - A[i];
last++;
} else {
last = A[i];
}
}
return ans;
}
};
最新文章
- Spring MVC学习笔记——Welcome
- spring4 mvc 出错
- VBA中操作XML
- 用VIM写作
- JavaScript中的Date
- hdu2034java
- 轻松使用px为单位开发移动端页面
- 使用URL读取网络图片资源
- HDU 1677	Nested Dolls
- 201521123044 《Java程序设计》第3周学习总结
- 用JS制作一个信息管理平台完整版
- winform倒计时
- 20165237 2017-2018-2《Java程序设计》课程总结
- Java_图片切片
- 纸小墨ink简洁主题story爱上你的故事
- Win10 远程桌面连接出现“要求的函数不受支持”的解决办法之修改注册表
- 每天一个linux命令(14):head命令
- G711 G723 G729线路占多少带宽问题
- virtual关键字
- itcast-Hibernate orm元数据和 关系操作
热门文章
- Jmeter 跨线程组传递参数 之两种方法
- 14.插入数据、复制数据--SQL
- Codeforces 140C(二分、构造)
- Avito Cool Challenge 2018-B. Farewell Party(思维)
- [代码修订版] Python 踩坑之旅 [进程篇其四] 踩透 uid euid suid gid egid sgid的坑坑洼洼
- SQL Server事务的四种隔离级别
- 基于JAVA的设计模式之适配器模式
- session会话
- JavaScript_11_验证
- 51nod 1693 水群