code for chapter 8
This commit is contained in:
25
08_greedy_algorithms/python/01_set_covering.py
Normal file
25
08_greedy_algorithms/python/01_set_covering.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# You pass an array in, and it gets converted to a set.
|
||||||
|
states_needed = set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"])
|
||||||
|
|
||||||
|
stations = {}
|
||||||
|
stations["kone"] = set(["id", "nv", "ut"])
|
||||||
|
stations["ktwo"] = set(["wa", "id", "mt"])
|
||||||
|
stations["kthree"] = set(["or", "nv", "ca"])
|
||||||
|
stations["kfour"] = set(["nv", "ut"])
|
||||||
|
stations["kfive"] = set(["ca", "az"])
|
||||||
|
|
||||||
|
final_stations = set()
|
||||||
|
|
||||||
|
while states_needed:
|
||||||
|
best_station = None
|
||||||
|
states_covered = set()
|
||||||
|
for station, states in stations.items():
|
||||||
|
covered = states_needed & states
|
||||||
|
if len(covered) > len(states_covered):
|
||||||
|
best_station = station
|
||||||
|
states_covered = covered
|
||||||
|
|
||||||
|
states_needed -= states_covered
|
||||||
|
final_stations.add(best_station)
|
||||||
|
|
||||||
|
print final_stations
|
||||||
Reference in New Issue
Block a user