🙄
100日アルゴリズム[8日目・hashTable]
解いた問題
回答
function repeatedNTimes(nums: number[]): number {
let hashMap: Map<number,number> = new Map;
for (let i:number = 0; i < nums.length; i++) {
hashMap.set(nums[i], (hashMap.get(nums[i]) || 0) +1);
}
const keys = Array.from(hashMap.keys());
const values = Array.from(hashMap.values())
for (let i:number = 0; i < keys.length; i++) {
if (values[i] > 1) return keys[i]
}
};
mapを使ってキーに数値を、バリューにその出現回数を記録しています。
もう少し短くすることもできます。
function repeatedNtimes(nums: number[]): number {
let hashMap: Map<number, number> = new Map;
for (const key of hashMap){
hashMap.set(key, (hashMap.get(key) || 0) + 1);
}
for ([key, value] of hashMap) {
if(value > 1) return key;
}
}
Discussion