Add TypeScript examples for chapters 10 and 11 (#311)

This commit is contained in:
Igor Moraes
2025-05-01 20:22:19 -03:00
committed by GitHub
parent a9d98d826a
commit 182947e5fb
4 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
// You pass an array in, and it gets converted to a set.
let statesNeeded: Set<string> = new Set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"]);
const stations: Record<string, Set<string>> = {};
stations["kone"] = new Set(["id", "nv", "ut"]);
stations["ktwo"] = new Set(["wa", "id", "mt"]);
stations["kthree"] = new Set(["or", "nv", "ca"]);
stations["kfour"] = new Set(["nv", "ut"]);
stations["kfive"] = new Set(["ca", "az"]);
const finalStations: Set<string> = new Set();
while (statesNeeded.size) {
let bestStation: string | null = null;
let statesCovered: Set<string> = new Set();
for (let station in stations) {
const states = stations[station];
const covered = new Set([...statesNeeded].filter(x => states.has(x)));
if (covered.size > statesCovered.size) {
bestStation = station;
statesCovered = covered;
}
}
statesNeeded = new Set([...statesNeeded].filter(x => !statesCovered.has(x)));
if (bestStation !== null) {
finalStations.add(bestStation);
}
}
console.log(finalStations); // Set { 'kone', 'ktwo', 'kthree', 'kfive' }

View File

@@ -0,0 +1,12 @@
{
"compilerOptions": {
"lib": [
"dom",
"es2015",
"es2016",
"es2017"
],
"target": "es2015"
}
}