思路:贪心
怎么样才能做到最少的move?其实答案很明显,就是尽肯能的试前后两个数之间的差距是1
所以考虑排序以后,倘若后面一个数比前面一个数小于或等于,那么将这个数变成pre+1即可。
class Solution {
public:
int minIncrementForUnique(vector<int>& A) {
sort(A.begin(),A.end());
int n=A.size();
int ans=0;
for(int i=1;i<n;i++)
{
if(A[i]<=A[i-1])
{
ans+=(A[i-1]-A[i]+1);
A[i]=A[i-1]+1;
}
}
return ans;
}
};