945. Minimum Increment to Make Array Unique

Posted lychnis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了945. Minimum Increment to Make Array Unique相关的知识,希望对你有一定的参考价值。

945. Minimum Increment to Make Array Unique
Medium

Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1.

Return the least number of moves to make every value in A unique.

 

Example 1:

Input: [1,2,2]
Output: 1
Explanation:  After 1 move, the array could be [1, 2, 3].

Example 2:

Input: [3,2,1,2,1,7]
Output: 6
Explanation:  After 6 moves, the array could be [3, 4, 1, 2, 5, 7].
It can be shown with 5 or less moves that it is impossible for the array to have all unique values.

 

Note:

  1. 0 <= A.length <= 40000
  2. 0 <= A[i] < 40000
 
Accepted
16,539
Submissions
37,311
 
排序后,每个元素A[i]最少应该是A[0]+i+1, 所以可以计算出need值
 
class Solution {
public:
    int minIncrementForUnique(vector<int>& A) {
        sort(A.begin(),A.end());
        int res=0,need=0;
        for(int i=0;i<A.size();++i)
        {
            res+=max(need-A[i],0);
            need=max(need,A[i])+1;
        }
        return res;
    }
};

 

以上是关于945. Minimum Increment to Make Array Unique的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode-945 Minimum Increment to Make Array Unique(使数组唯一的最小增量)

docker删除镜像报错处理:Error response from daemon: conflict: unable to delete a945e7fd5401 (cannot be forced

LeetCode 2187. Minimum Time to Complete Trips

LeetCode Minimum Moves to Equal Array Elements

Leet453. Minimum Moves to Equal Array Elements

LeetCode 452. Minimum Number of Arrows to Burst Balloons