Gabungkan Senarai dengan Elemen Dikongsi: Pendekatan Teori Graf
Pertimbangkan masalah penggabungan senarai yang berkongsi elemen biasa. Memandangkan senarai senarai yang mengandungi elemen, matlamatnya adalah untuk menggabungkan semua senarai yang berkongsi elemen dan terus mengulangi proses ini sehingga tiada lagi senarai boleh digabungkan.
Pada mulanya, seseorang mungkin mempertimbangkan untuk menggunakan operasi boolean dan gelung sementara untuk mencapai ini. Walau bagaimanapun, penyelesaian yang lebih elegan terletak pada penggunaan teori graf.
Visualkan senarai input sebagai graf di mana setiap senarai mewakili nod dan elemen kongsi adalah tepi yang menghubungkannya. Tugasan menjadi setara dengan mencari komponen yang disambungkan dalam graf ini.
NetworkX menyediakan penyelesaian yang komprehensif untuk tugasan ini. Ia menganggap setiap senarai sebagai nod dan membuat kesimpulan tepi berdasarkan elemen yang dikongsi. Dengan menggunakan fungsi connected_components NetworkX, seseorang boleh mengumpulkan senarai yang berkongsi elemen ke dalam komponen bersambung dengan cekap.
Berikut ialah pelaksanaan Python menggunakan NetworkX:
<code class="python">import networkx as nx def merge_shared_lists(input_lists): # Convert lists to a graph G = nx.Graph() for part in input_lists: G.add_nodes_from(part) G.add_edges_from(to_edges(part)) # Find connected components return [list(component) for component in nx.connected_components(G)]</code>
Pendekatan ini menawarkan beberapa faedah:
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Senarai dengan Elemen Dikongsi Menggunakan Teori Graf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!