码迷,mamicode.com
首页 > 其他好文 > 详细

945. Minimum Increment to Make Array Unique

时间:2019-12-06 00:10:38      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:accept   int   tin   share   tor   style   cep   possible   put   

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

标签:accept   int   tin   share   tor   style   cep   possible   put   

原文地址:https://www.cnblogs.com/lychnis/p/11992674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!