Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm một dải ô bao gồm tất cả các phần tử của N dải ô đã cho trong C ++


Giả sử chúng ta có n dãy chứa L và R. Chúng ta phải kiểm tra hoặc tìm chỉ số của 0 - dựa trên dãy bao gồm tất cả n - 1 dãy đã cho khác. Nếu không có phạm vi như vậy, hiển thị -1. Ví dụ:nếu L =[2, 4, 3, 1] và R =[4, 6, 7, 9], thì đầu ra là 3. Vì vậy, nó có nghĩa là phạm vi ở chỉ số thứ 3 (1 đến 9) bao gồm tất cả các phần tử của n - 1 dãy khác.

Vì tất cả các điểm L và R đều khác biệt, hãy tìm phạm vi của điểm L nhỏ nhất và điểm R lớn nhất, nếu cả hai đều nằm trong cùng một phạm vi, thì nó cho biết tất cả các phạm vi khác nằm trong phạm vi đó. Nếu không thì không thể.

Ví dụ

#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);
}

Đầu ra

[122, 124]