问题标题: 酷町堂:4223的求助

0
0
已解决
赵逸凡
赵逸凡
初级启示者
初级启示者

4223   数组元素唯一

题目描述 Description

给出一个整型数组A,每一次move操作允许将数组中的某一个元素增大1。现在要求将数组中的每个元素都变得唯一,请问最少需要多少次move操作?


0
已采纳
叶子煊
叶子煊
中级光能
中级光能

首先先排序

(我是从小到大的)

 

核心代码:

    int start=a[1];
    for(int i=2;i<=n;i++)
    {
        while(a[i]<=start)
        {
            a[i]++;
            cnt++;
        }
        start=a[i];
    }

这里就是想将第一个数定为“唯一值”

a[i]若有数小于唯一值,则加加,直到超过唯一值后唯一值后a[i]变成唯一值

每加加一次次数也要相应的加一次

最后输出

~~~~~~~~~~~~~~~~~~~~~~

望采纳~!!!

0
我要回答