首页 > 腾讯PCG 不知道是第几面的面经
头像
够钟1223
编辑于 2020-12-28 12:12
+ 关注

腾讯PCG 不知道是第几面的面经

这次的面试安排原因可以看我在上一篇面经里面写到的
上次的面经在这里
面试时间:25 号下午 2.30

开始

做完自我介绍之后就开始问项目
先让我介绍一遍项目
小程序,移动端,后管系统,硬件交互全都是在一个服务里面?为什么这样做?
介绍项目怎么分层的?怎么部署的?
开发过程中遇到了什么问题?怎么解决的?
然后让我说了我负责的模块比较有挑战的模块

基础

1.说说 JVM 五大分区,然后问我是不是必须分 5 个?
我说不是,HotSpot 的栈区只有一个,然后没有永久代
2.然后又问了一下我自己对 SpringBoot 的理解
这里尴尬的事情就来了,我用的校园网,卡的一批,面试官说我再说什么他听不太清楚,不过大概懂我意思了。
还有更尴尬的...
同一层楼正在装修,面试官说你到底在哪儿面试的?
我:阿巴阿巴阿巴,太惨了呜呜呜呜
然后面试官说既然这样那就不问你问题了吧
我们做两道题热一下身体

算法

面试官啪的一下打出一道题

反转二叉树

我笑一下,很快啊
我直接写了个递归还有一个队列递推
代码放在这里

public class Main {
    public static void main(String[] args) {
        Main m = new Main();
        TreeNode treeNode = new TreeNode(1);
        TreeNode treeNode1 = new TreeNode(2);
        TreeNode treeNode2 = new TreeNode(3);
        treeNode.left = treeNode1;
        treeNode.right = treeNode2;

        m.reverseTreeNode(treeNode);
        ArrayList<Integer> res = new ArrayList<>();
        m.preOrder(treeNode, res);
        res.forEach(System.out::println);

        m.reverseTreeNodeByDeque(treeNode);
        ArrayList<Integer> res1 = new ArrayList<>();
        m.preOrder(treeNode, res1);
        res1.forEach(System.out::println);


    }

    public void preOrder(TreeNode root,List<Integer> res){
        if(root == null){
            return;
        }
        preOrder(root.left, res);
        res.add(root.val);
        preOrder(root.right, res);
    }

    // 递归
    public void reverseTreeNode(TreeNode root){
        if(root ==null){
            return;
        }
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        reverseTreeNode(root.left);
        reverseTreeNode(root.right);
    }

     public void reverseTreeNodeByDeque(TreeNode root){
        if(root==null){
            return;
        }
        Deque<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while(!queue.isEmpty()){
            TreeNode pop = queue.pop();
            TreeNode temp =  pop.left;
            pop.left = pop.right;
            pop.right = temp;
            if(pop.left!=null){
                queue.add(pop.left);
            }
            if(pop.right!=null){
                queue.add(pop.right);
            }
        }
     }

   static class TreeNode{
        int val;
        TreeNode left;
        TreeNode right;

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

PS:以上所有的代码都要自己写,包括二叉树节点定义

写代码的时候我掉线了但是我不知道,呜呜呜呜
图片说明

然后面试官又打出一道股票买卖

好家伙,还是最简单的那一道
很快啊
直接写了个 dp 方程出来
写了个状态压缩之后的 dp
问他还写么?他说停停
问我还有没有其他解法?
我又写了一个一次遍历,每天买每天卖的方法
他看了一会儿他说我这个还行
他又问我还有没有其他的解法,我说我只想到这两种,他说这个贪心应该也行
我当时说了一句贪心应该做不了吧
不好处理收入缓慢上升的情况
他说他猜的
然后他又说要是现在加一个条件,交易次数只能是 K 次呢?
然后又是写了个 dp 方程,这次没写代码了,他看了方程之后说没问题
他那边就说没啥问题了

最后

他问我在重庆怎么去深圳实习?
你是 Java,但是我们这边都是用 Go,你打算怎么办?

反问?

这次到底是第几面?
答:不清楚...
后面还有没有面试?
答:可能有也可能没有,有些人会加面,有些人直通..
那个部门?
结果等多久?
你觉得我有什么地方需要提高的?
搞笑的来了,他说麦克风质量需要提高,网络质量需要提高,面试环境需要提高,其他的都可以了。
呜呜呜呜呜呜

总结

这次面试我感觉除了我面试环境的影响,因该是最简单的一次面试了吧,希望 Tencent 不要再搞什么幺蛾子了...

更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐