You are viewing a single comment's thread. Return to all comments →
Nice solution! I used a similar approach, only more messy. I kept a separate array for values and updated that arary based on a query.
Passed all tests though.
function freqQuery(queries) { const result = []; const dict = {}; const values = []; queries.forEach((queryArr) => { if (queryArr[0] === 1) { const index = values.indexOf(dict[queryArr[1]]); if (index > -1) values.splice(index, 1); dict[queryArr[1]] = (dict[queryArr[1]] || 0) + 1; values.push(dict[queryArr[1]]); } else if (queryArr[0] === 2) { if (dict[queryArr[1]]) { const index = values.indexOf(dict[queryArr[1]]); dict[queryArr[1]] > 1 ? --dict[queryArr[1]] : delete dict[queryArr[1]]; if (dict[queryArr[1]]) { values.splice(index, 1, dict[queryArr[1]]); } else { values.splice(index, 1); } } } else if (queryArr[0] === 3) { if (values.includes(queryArr[1])) { result.push(1); } else { result.push(0); } } }); return result; }
Seems like cookies are disabled on this browser, please enable them to open this website
Frequency Queries
You are viewing a single comment's thread. Return to all comments →
Nice solution! I used a similar approach, only more messy. I kept a separate array for values and updated that arary based on a query.
Passed all tests though.