,可以使用哈希表来解决。具体步骤如下:
以下是一个示例的实现代码(使用JavaScript语言):
function countOccurrences(arr, target) {
const countMap = new Map(); // 创建一个空的哈希表
for (const num of target) {
if (countMap.has(num)) {
countMap.set(num, countMap.get(num) + 1); // 更新元素出现的次数
} else {
countMap.set(num, 1); // 初始化元素出现的次数为1
}
}
const result = [];
for (const num of arr) {
if (countMap.has(num)) {
result.push(countMap.get(num)); // 将元素出现的次数添加到结果数组中
} else {
result.push(0); // 若元素不存在于哈希表中,则次数为0
}
}
return result;
}
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [1, 2, 2, 3, 3, 3];
console.log(countOccurrences(arr1, arr2)); // 输出:[1, 2, 3, 0, 0]
此方法的时间复杂度为 O(n),其中 n 是要计数的数组的长度。
以上是对于给定问题的回答。若您还有其他问题或需要进一步了解,请随时告诉我。