我打算在 binarysearch.io 上解决一些算法,并遇到了这个问题:
我用JS解决了这个问题,如下:
class Solution {
solve(nums) {
const Hash = {};
const Cache = {};
for (let val of nums) {
if (!Hash[val]) {
Hash[val] = 0;
}
Hash[val]++; //implicit else
}
const result = Object.values(Hash).reduce((accum, curr) => {
if (accum && Cache[curr] !== 'unique') {
Cache[curr] = 'unique';
return true
}
return false;
}, true);
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试用 TypeScript 解决这个问题时(我对 TypeScript 还很陌生),我遇到了可能由 .reduce() 方法引起的编译错误:
class Solution {
solve(nums: Array<number>): boolean {
const Hash = {}; …Run Code Online (Sandbox Code Playgroud)