通过最小增量使排序数组中的元素变得唯一


本文旨在通过最小增量使排序数组中的元素变得唯一。首先,提供了一个已排序的整数数组。我们必须通过增加值并尽可能保持数组和尽可能低,使数组元素彼此不同。作为输出,我们必须显示可实现的最小总和。

问题陈述

通过最小增量使排序数组中的元素变得唯一。

方法

给定一个排序的整数数组。

我们首先检查给定整数数组中的元素是否唯一。也就是说,我们确保给定整数数组中没有元素重复超过一次。如果所有元素都是唯一的,我们添加给定数组中的所有元素,并将数组中存在的元素的总和作为输出返回。假设如果任何数字重复超过一次,我们忽略重复并仅取该元素一次,无论它重复多少次。我们添加这些元素并将总和作为结果返回。

示例 1

考虑一个整数数组,a={1,2,3}

由于给定数组中的所有三个元素 1、2 和 3 在这里都是唯一的,也就是说,此整数数组中的任何元素都没有重复超过一次,因此我们只需将所有元素 1、2 和 3 相加,并将总和 6 作为输出打印。

也就是说,我们在这里获得的输出是 1+2+3=6。

示例 2

考虑一个整数数组,a={1,2,2,3}

在此整数数组中,元素 1 和 3 只出现了一次,但元素 2 在这里重复了两次。根据规则,我们必须忽略重复并仅考虑元素 2 一次。也就是说,我们添加 1、2 和 3,并将总和 6 作为输出打印。

也就是说,我们在这里获得的输出是 1+2+3=6。

算法

下面给出了通过最小增量使排序数组中的元素变得唯一的算法。

步骤 1: 开始

步骤 2: 使用值定义整数数组。

步骤 3: 设置数组的大小。

步骤 4: 将总和和前一个元素设置为数组的第一个元素。

步骤 5: 运行循环,将当前元素设置为数组的第二个元素。

步骤 6: 如果前一个元素大于或等于当前元素,则将当前元素增加到前一个元素加 1。

步骤 7: 将总和设置为总和加当前元素。

步骤 8: 将前一个元素设置为当前元素。

步骤 9: 重复循环。

步骤 10: 打印总和。

步骤 10: 停止

下面给出了通过最小增量使排序整数数组中的元素变得唯一的 C 程序。

示例

#include <stdio.h>
   int main(){
   int a[]={1,2,2,3}; //input the array elements
   int n = 4;       //set the size of the array
   int sum = a[0];   //set sum to 0
   int prev = a[0];   //set prev to 0
//iterate the array and check for the condition
   for( int i = 1; i < n; i++ ) {
      int curr = a[i];
      if( prev >= curr ) {
         curr = prev+1;
      }
      sum += curr;
      prev = curr;
   }
   printf("%d",sum); // print the result obtained
}

输出

执行后,将产生以下输出

10

结论

同样,我们可以通过可能的最小增量使排序数组中的元素变得唯一。

本文解决了通过最小增量使排序数组中的元素变得唯一的挑战。

本文提供了 C 编程代码以及通过最小增量使排序数组中的元素变得唯一的算法。

更新于: 2023-08-23

123 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告