10月12日更新 收到Offer
10月12日收到网易云音乐的测开岗位带薪offer,总包33.6w + 4w签字费,还不赖,但是不如预期,准备去字节了。
题目类型:4道编程+2道问答 得分3.6/4.0
编程1:特征组合
题目描述:给定若干个特征,要求你将特征进行组合,一定要注意组合的顺序。(类似于全排列)
题目输入:
3 man woman coder gamer painter phd
要求输出:
man-coder-phd woman-coder-phd man-gamer-phd woman-gamer-phd man-painter-phd woman-painter-phd
import java.util.*;
public class Test1 {
public static void get(List<List<String>> all) {
/**
* 3
* man woman
* coder gamer painter
* phd
*
* [man, woman] 扩容计算 -> 2 * 3 * 1 = 6 / 2 = 3
* 扩容后:
* [man, woman, man, woman, man, woman] 6
* [coder, gamer, painter] 3
*
*/
//
int n = all.size();
List<String> result = all.get(0);
// init: [man,woman]
for (int i = 1; i < n; i++) {
List<String> curr = all.get(i);
// 将 result 与 init进行扩容计算
int afterLen = result.size() * curr.size(); // 6
// 将 result 扩容,但记录下扩容前的长度
int beforeLen = result.size(); // 2
String[] temp = new String[result.size()];
int index = 0;
for (String s : result) {
temp[index++] = s;
}
for (int j = 1; j < curr.size(); j++) {
result.addAll(Arrays.asList(temp));
}
// result 扩容完毕
// 将 curr 的值依次添加回result中
int ii = 0;
for (String s : curr) {
for (int k = 0; k < beforeLen; k++) {
result.set(ii, result.get(ii) + "-"