C++ 通过最小增量使排序数组的元素唯一

C++ 通过最小增量使排序数组的元素唯一

本文的目标是通过最小增量使排好序的数组中的元素唯一。首先,提供一个已排序的整数数组。通过增加值并保持数组总和尽可能低,我们必须使数组元素之间是离散的。作为输出,我们必须显示可达到的最小和作为结果。

问题陈述

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

方法

给定一个整数数组。

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

示例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 :打印总和。

步骤 11:停止

给出的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编程代码以及通过最小递增值使得有序数组中的元素不同的算法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程