要添加的元素,以便在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