Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm hai số từ hai mảng tổng không có trong cả hai mảng

Cho mảng A kích thước n, B kích thước m. Chọn a từ A, b từ B sao cho a+b không thuộc A và không thuộc B.

Ví dụ

Với A=[3,2,2], B=[1,5,7,7,9], đầu ra [3,1] vì 3+1=4 không có trong mảng nào. (Câu trả lời khác: 3 và 9).

Giải thuật

Sắp xếp cả hai mảng. Chọn phần tử lớn nhất của A và lớn nhất của B. Tổng của chúng chắc chắn lớn hơn mọi phần tử trong cả hai mảng (vì phần tử lớn nhất + phần tử lớn nhất > mỗi phần tử riêng lẻ). Do đó tổng không thuộc mảng nào.

Mã C++

#include <bits/stdc++.h>
using namespace std;

void solve(vector<int> A, vector<int> B) {
    sort(A.begin(), A.end());
    sort(B.begin(), B.end());
    cout << A[A.size() - 1] << ", " << B[B.size() - 1];
}

int main() {
    vector<int> A = { 3, 2, 2 };
    vector<int> B = { 1, 5, 7, 7, 9 };
    solve(A, B);
}

Đầu vào / Đầu ra

Input: { 3, 2, 2 }, { 1, 5, 7, 7, 9 }
Output: 3, 9