面试经验-芯行科技-7.5k-15薪

芯行科技 7.5k 15薪

两道算法题2选一

面试时间:2023年4月11日11:00:00

二维数组,每行分别递增,每列分别递增,给定某数字,判别是不是在此数组里面。采用面向对象的编程方式,接口自己定义,给出最优最快查找算法代码

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
class TwoDArray {  
  constructor(data) {
    this.data = data;
  }

  contains(target) {
    let row = 0;
    let col = this.data[0].length - 1;

    while (row < this.data.length && col >= 0) {
      if (this.data[row][col] === target) {
        return true;
      } else if (this.data[row][col] > target) {
        col--;
      } else {
        row++;
      }
    }

    return false;
  }
}

const data = [
  [12710],
  [391119],
  [5152023],
  [6182526],
];

const array = new TwoDArray(data);
console.log(array.contains(20)); // true

在二维数组中,每个元素中有一个整数,表示图形在该元素处的高度。我们需要计算出从左上角到右下角的最小路径和,每次可以向下或向右移动。详细解释:
给定一个二维数组中的每个元素表示一个格子的高度。你的任务是找到从矩阵的左上角(0,0)到右下角(n-1n-1)的最小路径和。在每一步,你只能向下或向右移动。例如,给定以下grid:
grid =[
[1, 3, 1][1, 5, 1],[4, 2, 1]
要求:实现一个函数minpath_su(gria),接收一个grid二维数组作为输入,并返回从左上角到右下角的最小路径和。

面试问答

vue的生命周期

git开发流程清楚吗?git stash使用过吗 如何使用

Linux基本命令,打开文件,删除文件

WebSocket使用过吗?是什么

electron使用过吗?

node使用过吗?

作者

colin-dong

发布于

2023-04-12

更新于

2024-01-12

许可协议

评论