要在面试官提出问题之前解决问题

1. 笔试题

1.1 题目

给出一个正整数数组,以及一个目标值target,求数组中可以达到这个target值最短的子序列长度,如果无法达到这个长度,则返回0。下面给出样例:

input: 2 3 1 2 4 3
target: 7
output: 2
input: 1 1 1 1 1 1 1
target: 11
output: 0

1.2 思想

我的想法是:使用一个二维数组存储每两个位置之间和,如下图所示:

java对接小红书开放平台 sdk 小红书 java面试_java对接小红书开放平台 sdk

然后遍历找出这个sum中值超过target的最短距离即可。

1.3 代码

略了~

1.4 注意点

  • 空间结构用 sum[maxN][maxN] 是否有点儿浪费?
    肯定浪费,其实在比较这些值的过程中,只需要用一个临时记录就可以了。
  • 是否可以及时的跳出计算?
    可以的,因为这里计算有些重复,所以可以采用及时跳出循环的方法降低复杂度。

2. 面试

  • 如何从无标签的语料库中处理数据?比如某个实体之前就没有被标注过,该怎么把它抽取出来?
    我没有答上来。但是应该可以多思考一下:首先可以将这个问题归类无监督问题。那么是不是应该从常用的无监督方法中找一些作为尝试? 面试官跟我说可以尝试一下BPE算法,我当时觉得的确可以试试;20210825号时,我再看书,觉得可以用共现矩阵测试一下。因为共现矩阵有可能会把常用的字联系在一起。
  • 抽取NER的模型有哪些?NER的论文有哪些?
  • 常见激活函数?常用激活函数?LSTM中使用的激活函数是什么?为什么是它?
  • Batch Normalization 和 Layer Normalization。
  • CRF 能讲讲吗?
  • LSTM 和 RNN的区别是什么?引入到LSTM的原因是什么?

一面就挂了,主要原因应该是很多基础点我都么有答上来(像CRF,BN/LN 这种都是常见且基础的。搁我当面试官,我肯定也不会放水),主要是因为前期根本没有准备面试,就匆匆上岗,个人觉得还是应该充分复习一到两个月,把所有知识点捋一遍,再面试的话,效果应该还不错。等我下篇面经~