C++中添加元素以确保范围内的所有元素都存在于数组中


在这个问题中,我们得到一个包含n个数字的数组arr[]。我们的任务是创建一个程序来查找需要添加的元素数量,以便该范围内的所有元素都存在于数组中。

问题描述:在这里,我们需要找到需要添加到数组中的元素数量,以确保数组中存在该范围内的所有元素。该范围是从数组的最小元素到数组的最大元素

让我们来看一个例子来理解这个问题:

输入: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],则增加计数。

步骤3:打印计数。

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

示例

在线演示

#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<<"The number of elements required to complete the range is "<<calcEleRequired(arr, n);
   return 0;
}

输出 -

The number of elements required to complete the range is 1

更新于: 2021年1月22日

82 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.