cuốn sách gpt4 ai đã làm

thuật toán - tìm một cặp duy nhất

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:14:32 25 4
mua khóa gpt4 Nike

Cho một tập hợp n cặp số nguyên, có cách nào nhanh chóng để xác định xem có hai cặp (x_1,y_1) và (x_2, y_2) trong tập hợp đó sao cho x_1 != x_2 và y_1 != y_2 không?

Ví dụ: {(0,1), (0,2), (2,1), (3,2)} có {(0,2), (2,1)}. Tuy nhiên {(1,0), (2,0), (3,0) không có cặp thỏa mãn nào.

Cách tiếp cận ngây thơ chỉ là thử tất cả các cặp. Có O(n^2) trong số đó. Bạn có thể có được một cái gì đó gần hơn với thời gian tuyến tính?


Nếu nó tăng tốc mọi thứ, chúng ta có thể giả sử rằng các cặp được lưu dưới dạng con trỏ trong mảng theo thứ tự được sắp xếp (tọa độ đầu tiên, thứ hai).

câu trả lời hay nhất

Bạn có thể sử dụng thuật toán O(n) sau đây. Để đơn giản hóa ký hiệu, tôi gọi (x,y) ađiểm.

Lưu ý rằng cặp điểm như vậy chỉ tồn tại nếu tất cả các điểm nằm trên một đường thẳng song song với trục. Xác định đường thẳng đi qua hai điểm đầu tiên, sau đó đối với mỗi điểm mới, hãy kiểm tra xem nó có nằm trên cùng một đường thẳng hay không.

Về thuật toán - tìm một cặp duy nhất, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/21143254/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress