3D前端开发面试题目解析
Joyer Lee Lv3

前言

在我之前的业务流程中,有幸接触到了3D前端开发的内容,从layaAir、verge到threejs,最终采用了threejs技术去实现了一个3D服装定制的效果。近期,接到了一个专业3D开发团队的面试邀请,虽然发挥的不尽人意,但仍不失为一个很好的面试经历。特将面试问题记录一下。

笔试题

1.编写一种算法,若M*N矩阵中某个元素为0,则将其所在的行与列清零。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//示例:
[
[1,1,1,1],
[1,1,0,1],
[1,1,1,1],
[1,1,1,1]
]
//输出
[
[1,1,0,1],
[0,0,0,0],
[1,1,0,1],
[1,1,0,1]
]

解读:二维数组矩阵中,含有0的位置,让此位置整行,整列的值都设置为0,返回修改后的数组数列。 思路:先循环矩阵数列,记录需要清零的行和列,再循环修改数组的元素值。 代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var matrix=[
[1,1,1,1],
[1,1,0,1],
[1,1,1,1],
[1,1,1,1]
];
var rowLength=matrix.length,columnLength=matrix[0].length;
//记录需要清零的行数和列数
var tempR=[],tempC=[];

for(var i=0;i<rowLength;i++){
for(var j=0;j<columnLength;j++){
if(!matrix[i][j]){
tempR.push(i);
tempC.push(j);
}
}
}

for(i=0;i<rowLength;i++){
for(var j=0;j<columnLength;j++){
if(tempR.includes(i)tempC.includes(j)){
matrix[i][j]=0;
}
}
}

console.log(matrix);
//返回如下
//[
// [1, 1, 0, 1]
// [0, 0, 0, 0]
// [1, 1, 0, 1]
// [1, 1, 0, 1]
//]

  • 本文标题:3D前端开发面试题目解析
  • 本文作者:Joyer Lee
  • 创建时间:2020-10-23 18:26:22
  • 本文链接:https://lhx.blog.wj2015.com/2020/10/23/工作日志/3D前端开发面试题目解析/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!