JSFiddle - React, Tailwind, and code Playground
by Prathameshsb
JavaScript
/**
* @param {string[][]} cache_entries - The cache entries [[timestamp, key, value], ...]
* @param {string[][]} queries - The queries [[key, timestamp], ...]
* @return {number[]} - The answers to the queries
*/
function getQueryAnswers(cache_entries, queries) {
let cacheMap = new Map(); // Hashmap to store cache data
// Step 1: Store cache entries in a hashmap
for (let [timestamp, key, value] of cache_entries) {
if (!cacheMap.has(key)) {
cacheMap.set(key, new Map());
}
cacheMap.get(key).set(timestamp, parseInt(value));
}
// Step 2: Process queries efficiently
let result = [];
for (let [key, timestamp] of queries) {
result.push(cacheMap.get(key).get(timestamp)); // Direct lookup
}
return result;
}
// Example Test Case
let cache_entries = [
["03:00:23", "1e3fg08w", "101"],
["12:45:36", "ef41t561", "243"],
["21:09:31", "ko0e51j8", "809"]
];
let queries = [
["ef41t561", "12:45:36"]
];
console.log(getQueryAnswers(cache_entries, queries)); // Output: [243]