今日推荐的题目也挺简单的
使数组唯一的最小增量
题目意思是数组里面的数据唯一。那么需要变化的就是那些
最简单的思路就是 先对数组排序,遍历每个数,如果和前一个数一样,那就变成前一个数+1,记录需要变化出次数,累计和 就是结果了。 思路清晰,那实现起来就很简单了。
public int minIncrementForUnique(int[] A) {
/**
*
* 功能描述: 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。
*
* 返回使 A 中的每个值都是唯一的最少操作次数。
*
* @param: [A]
* @return: int
* @auther: smallfish
* @date: 2020-03-22 15:52
*/
int result = 0;
//排序
Arrays.sort(A);
for (int i : A) {
System.out.println(i);
}
//对每个元素操作
for (int i = 1; i < A.length; i++) {
if (A[i] <= A[i - 1]) {
//记下A[i]
int tem = A[i];
A[i] = A[i - 1] + 1;
result += A[i] - tem;
}
}
return result;
}