前言
2020年08月22日晚上7点开始的猿辅导的笔试,包括了15题选择题和3道选择题。
选择题
选择题里比较有印象的是,邻接矩阵零元素的个数,完全不会做,其它的基本只要耐心都是可以做的,不过我花的时间稍微有点久。
第一题
第一题是给定一个完全二叉树,然后根据这棵二叉树,从根节点出发逆时针旋转一周回到起点,打印路上所有的节点。

上面的那个例子,你需要输出的是1 2 4 8 9 5 6 7 3,而实际很多人输出的都是1 2 4 8 9 7 3,漏掉了中间的5和6,所以一个案例都过不去。
那了解了这个代码还算是比较简单的:
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 37 38 39 40 41 42 43 44 45 46
| public class Yuan1 { public static void main(String[] args) { Scanner in = new Scanner(System.in);
int n = in.nextInt(); int[] arr = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i] = in.nextInt(); } int index = 0; int turn = 0;
while (index < arr.length) { System.out.print(arr[index] + " "); index = index * 2 + 1; turn++; } index = (index - 1) / 2 + 1; while (index < arr.length) { System.out.print(arr[index] + " "); index++; }
int temp = ((int) Math.pow(2, turn) - n - 1) / 2; int start = (int) Math.pow(2, turn - 1) - 1 - temp; for (int i = start; i < start + temp; i++) { System.out.print(arr[i] + " "); }
if (n == ((int) Math.pow(2, turn) - 1)) { turn = turn - 1; } else { turn = turn - 2; } index = (int) Math.pow(2, turn) - 2; while (index > 0) { System.out.print(arr[index] + " "); turn--; index = (int) Math.pow(2, turn) - 2; } } }
|
PS:有人说这道题leetcode上有,我没找到…
第二题
给定一个矩阵,求出里面的最大的矩阵和。只不过这里的矩阵最左边和最右边是可以连接的,形成一个柱子。
Leetcode题目的变种,如果不考虑相连的情况,是可以过40%的。
第三题
LeetCode的原题375,就是稍微加了可以帮你免除K次金额而已。
但是我个人当时想的是,加了这个K次免费猜的次数,那这K次是不是可以猜测大胆一点,用一点新奇的方法,实际证明我错了。
总结
猿辅导的题,怎么说呢,直接出leetcode的题目是不是不太好啊?