vấn đề đi như thế nàynó có thể được giải quyết trong thời gian tuyến tính, đã làm điều này trong n^2 lần
đề nghị một cấu trúc dữ liệu và viết một chương trình để đếm số lượng nhân viên giới thiệu bởi một nhân viên (trực tiếp hoặc gián tiếp) trong thời gian tuyến tính. ví dụ:
A B C D E F G
A 0 1 0 0 0 0 0 A referred 4 (A referred B, B referred C and D and D referred E)
B 0 0 1 1 0 0 0 B referred 3
C 0 0 0 0 0 0 0
D 0 0 0 0 1 0 0 D referred 1
E 0 0 0 0 0 0 0
F 0 0 0 0 0 0 1 F referred 1
G 0 0 0 0 0 0 0
thực hiện việc này bằng mảng hai chiều, có thể thực hiện trong thời gian tuyến tính không?
Lưu ý rằng một nhân viên rõ ràng có thể không được đề xuất bởi một người nào đó mà anh ta đề xuất trực tiếp hoặc gián tiếp, vì vậy sẽ không có chu kỳ trong biểu đồ. Một nhân viên mới có thể được đề nghị bởi chỉ một nhân viên. trong khi mỗi nhân viên có thể giới thiệu nhiều nhân viên.
tôi chỉ có thể nghĩ về một O (n) algo, làm thế nào bạn làm điều đó trong thời gian O (N^2)? Đọc tệp là O (M) trong đó M là số ký tự, nhưng tôi giả định rằng không bao gồm đọc. –
Ma trận kề có mục nhập n² và chương trình cần đọc toàn bộ ma trận, do đó, nó sẽ nhất thiết phải mất ít nhất n² thời gian. – ruakh
0 và 1 cho biết nhân viên nào được giới thiệu, ví dụ: trong hàng đầu tiên A chỉ được xếp hạng B để có 1 và số còn lại là 0 – Saqib