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
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP