通过最小增量使排序数组中的元素变得唯一
本文旨在通过最小增量使排序数组中的元素变得唯一。首先,提供了一个已排序的整数数组。我们必须通过增加值并尽可能保持数组和尽可能低,使数组元素彼此不同。作为输出,我们必须显示可实现的最小总和。
问题陈述
通过最小增量使排序数组中的元素变得唯一。
方法
给定一个排序的整数数组。
我们首先检查给定整数数组中的元素是否唯一。也就是说,我们确保给定整数数组中没有元素重复超过一次。如果所有元素都是唯一的,我们添加给定数组中的所有元素,并将数组中存在的元素的总和作为输出返回。假设如果任何数字重复超过一次,我们忽略重复并仅取该元素一次,无论它重复多少次。我们添加这些元素并将总和作为结果返回。
示例 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 编程代码以及通过最小增量使排序数组中的元素变得唯一的算法。