要添加的元素,以便在C ++中数组中存在某个范围的所有元素

在这个问题中,我们得到了一个由n个数组成的数组arr []。我们的任务是创建一个程序,以查找要添加元素的数量,以便某个范围中的所有元素都出现在数组中。 

问题描述: 在这里,我们需要找到需要添加到数组中的元素数,以确保数组中存在某个范围的所有元素。范围是从array的smallestElement到array largestElement。 

让我们举个例子来了解这个问题,

输入:  arr [] = {5,8,3,1,6,2}

输出 2

解释:

范围是1到8,

要添加的元素是4和7。

解决方法-

解决该问题的简单方法是找到数组中不存在的范围中的哪个元素。为此,我们需要对数组进行排序,然后查找是否存在下一个元素。

算法-

步骤1: 对数组进行排序。

第2步: 遍历数组,对于i-> 0到n-1。

步骤2.1: 如果arr [i] + 1!= arr [i + 1],则增加计数。

第三步: 打印计数。

该程序说明了我们解决方案的工作原理,

示例

#include <bits/stdc++.h>
using namespace std;

int calcEleRequired(int arr[], int n)
{
   int count = 0;
   sort(arr, arr + n);
   for (int i = 0; i < n - 1; i++)
      if (arr[i]+1 != arr[i+1] )
         count ++;

   return count;
}

int main()
{
   int arr[] = { 5, 7, 3, 1, 6, 2 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"完成范围所需的元素数为 "<<calcEleRequired(arr, n);
   return 0;
}

输出-

完成范围所需的元素数为 1