流利说笔试

笔试时长:60分钟

笔试题型:

8题单选(40分)

2题多选(16分,少选扣分,错选不得分)

1题编程(15分)

1题问答(25分)

除了编程题,其他问题都是英文的。

很坑的地方是,一种题型进去答题,必须提交该类题型才能回到目录。提交后就不能修改答案了。

单选题

有概率计算、有机器学习概念、有求导、有计算L1范数。。。其他忘记了。

多选题

问关于SGD的概念哪个是正确的、问哪几个排序不是稳定的。

下面回忆一下编程题

题目:输出二叉搜索树的层序遍历

输入:

第一行:N(二叉搜索书的节点数)

第二行:N个节点的值,空格隔开,换行结束

输出:

二叉搜索树的层序遍历结果

例子:

输入:

9

8 3 1 6 4 7 10 14 13

输出:

8 3 10 1 6 14 4 7 13

 

直接贴代码(虽然没

 

在考试时间完成?,但还是写了一份完整代码,仅供参考)

import java.util.*;

public class TopDownLeftRight {
    public static class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    public ArrayList PrintFromTopToBottom(TreeNode root) {
        if (root == null) {
            return null;
        }
        ArrayList result = new ArrayList<>();
        Queue queue = new ArrayDeque<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            TreeNode node = queue.peek();
            result.add(node.val);
            if (node.left != null) {
                queue.add(node.left);
            }
            if (node.right != null) {
                queue.add(node.right);
            }
            queue.poll();
        }
        return result;
    }

    public TreeNode GenerateTree(int[] arr, int start, int end) {
        if (start == end) {
            return new TreeNode(arr[start]);
        }
        if (start > end) {
            return null;
        }
        TreeNode root = new TreeNode(arr[start]);
        int i = start + 1;
        for (; i < end; i++) {
            if (arr[i] > arr[start]) {
                break;
            }
        }
        if (i == arr.length - 1) {
            root.left = GenerateTree(arr, start + 1, i);
        } else {
            root.left = GenerateTree(arr, start + 1, i - 1);
        }
        if (i <= end && arr[i] > arr[start]) {
        root.right = GenerateTree(arr, i, end);
        }
        return root;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int NodeNum = sc.nextInt();
        int[] NodeArr = new int[NodeNum];
        for (int i = 0; i < NodeNum; i++) {
            NodeArr[i] = sc.nextInt();
        }
        TopDownLeftRight topDownLeftRight = new TopDownLeftRight();
        TreeNode root = topDownLeftRight.GenerateTree(NodeArr, 0, NodeNum - 1);
        ArrayList re = topDownLeftRight.PrintFromTopToBottom(root);
        for (int i = 0; i < re.size(); i++) {
            System.out.print(re.get(i));
            System.out.print(" ");
        }
    }
}

据说还有另一道编程题,是哈夫曼树相关,可以在这里找到相关资料。

https://www.cnblogs.com/GumpYan/p/5861605.html

问答题,没看懂题目

计算log(sum(exp(x)))...不太懂

看了广大网友的回答,说是可以参考这个博文:https://blog.csdn.net/zziahgf/article/details/78489562

那么,现在我还是滚回去继续看书吧

 

 

你可能感兴趣的:(笔试)