用 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]
广告