美文网首页
数组值唯一的最小操作

数组值唯一的最小操作

作者: geaus | 来源:发表于2021-11-29 23:05 被阅读0次

给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 <= i < nums.length 的下标 i,并将 nums[i] 递增 1。
返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。

示例 1:
输入:nums = [1,2,2]
输出:1
解释:经过一次 move 操作,数组将变为 [1, 2, 3]。

示例 2:
输入:nums = [3,2,1,2,1,7]
输出:6
解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。
可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。

代码:

class Solution {
public:
    int minIncrementForUnique(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        int ret = 0;
        for(int i=1; i<nums.size(); i++){
            if(nums[i]<=nums[i-1]){
                ret += nums[i-1] - nums[i] + 1;
                nums[i] = nums[i-1] + 1;
            }
        }
        return ret;
    }
};

相关文章

  • 数组值唯一的最小操作

    给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 <= i < nums.length ...

  • LeetcodeT945

    //[945]使数组唯一的最小增量//给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1...

  • 数组的案例

    1.数组案例:数组数据统计 现在假设给你一个数组,要求可以统计出数组的最大值,最小值,平均值,总和。这些操作肯定是...

  • 945-使数组唯一的最小增量

    使数组唯一的最小增量 题目 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使...

  • 找出数组中的最大值最小值,最小值必须在最大值前面

    给一个数组,找出数组中的最大值最小值,最小值必须在最大值前面,也就是说最小值的下标必须比最大值的下标小。 要求时间...

  • day12_数组动静态初始化和数组的基本操作

    数组动静态初始化 两种常见的异常操作 空指针异常(引用异常) 索引越界异常 获取数组中最大最小值和打印数组

  • 数组二

    ackage com.itheima_04;/* * 数组获取最值(获取数组中的最大值最小值) */public ...

  • 排序算法--选择排序

    选择排序基本思想如下: 遍历未排序数组,选出最小值,放在数组开头 在剩余未排序数组中,选出最小值,排在已排序数组的...

  • 计数排序

    排序简介 找出数组的最大值和最小值,创建新数组[max+1], 原数组值等于新数组下标时, 新数组值加一,最后把新...

  • 数组的应用--最值问题

    查找数组中的最大值、最小值: 打印结果:

网友评论

      本文标题:数组值唯一的最小操作

      本文链接:https://www.haomeiwen.com/subject/kvdrxrtx.html