原始问题:
"编写JS代码:统计小红矩阵子区域的颜色种类数"
可以使用以下代码来实现:
function countColor(matrix, startX, startY, endX, endY) {
let colorSet = new Set();
for (let i = startX; i <= endX; i++) {
for (let j = startY; j <= endY; j++) {
colorSet.add(matrix[i][j]);
}
}
return colorSet.size;
}
// 示例矩阵
let matrix = [
['红', '绿', '蓝'],
['红', '红', '绿'],
['蓝', '绿', '蓝']
];
// 示例询问
let startX = 0;
let startY = 0;
let endX = 1;
let endY = 2;
let colorCount = countColor(matrix, startX, startY, endX, endY);
console.log(colorCount); // 输出:3
在上述代码中,countColor
函数接受一个矩阵和子矩阵的起始坐标和结束坐标作为参数。它使用一个Set
数据结构来记录子矩阵中出现的不同颜色种类,最后返回Set
的大小作为结果。通过遍历子矩阵中的每个格子,将其颜色添加到Set
中,由于Set
的特性保证了不会有重复的元素,因此最后返回的Set
的大小就是子矩阵的颜色种类数。
Prev:小红拿到了一个矩阵,矩阵中格子的额色为红色、绿色或者蓝色