用 C++ 查找一个区间,这个区间包含给定 N 个区间的所有元素


假设我们有 n 个区间,分别包含 L 和 R。我们必须检查或查找包含其他所有 n – 1 个给定区间的区间的 0-based 索引。如果没有这样的区间,则显示 -1。例如,如果 L = [2, 4, 3, 1],并且 R = [4, 6, 7, 9],则输出为 3。这意味着第 3 索引处的区间 (1-9) 包含其他所有 n – 1 区间的所有元素。

由于所有 L 和 R 点都是不同的,因此找到 L 点和 R 点最小的区间,如果这两个点在同一区间,则表示所有其他区间都在它里面。否则,这是不可能的。

实例

 现场演示

#include<iostream>
using namespace std;
int fact (int n) {
   if (n == 0)
      return 1;
   return n * fact(n-1);
}
void showRange(int n) {
   int a = fact(n + 2) + 2;
   int b = a + n - 1;
   cout << "[" << a << ", " << b << "]";
}
int main() {
   int n = 3 ;
   showRange(n);
}

输出

[122, 124]

更新于: 18-Dec-2019

117 人浏览

启动您的 职业生涯

完成课程以获得认证

开始
广告