字节2面(伪)凉经

一面面试官人确实挺好的。二面的题不难,但是问的比较有深度,还是基础太差了
一面:
  1. IO多路复用
  1. 进程和线程

  2. 进程通信的方式

  3. 四次挥手过程

  4. ConcurrentHashMap

  5. 笔试题

    (1)32GB的文件,1GB内存,怎么实现排序

    (2)拓扑排序

二面:
栈实现队列

-- 正确性证明(实在不知道这个正确性是怎么证明)

-- 时间复杂度优化(优化后,但是不知道怎么计算)

-- 时间复杂度计算

--多线程环境下顺序保证

再贴一个优化后的代码吧
public class MyQueue {

    Deque<Integer> stack1;
    Deque<Integer> stack2;

    /**
     * Initialize your data structure here.
     */
    public MyQueue() {
        stack1 = new LinkedList<>();
        stack2 = new LinkedList<>();
    }

    /**
     * Push element x to the back of queue.
     */
    public void push(int x) {
        stack1.push(x);
    }

    /**
     * Removes the element from in front of queue and returns that element.
     */
    public synchronized int pop() {
        if(!stack2.isEmpty())
            return stack2.pop();
        while (!stack1.isEmpty())
            stack2.push(stack1.pop());
        return stack2.pop();
    }

    /**
     * Get the front element.
     */
    public synchronized int peek() {
        if(!stack2.isEmpty())
            return stack2.peek();
        while (!stack1.isEmpty())
            stack2.push(stack1.pop());
        return stack2.peek();
    }

    /**
     * Returns whether the queue is empty.
     */
    public boolean empty() {
        return stack1.isEmpty() && stack2.isEmpty();
    }

}


#面经##字节跳动##校招##Java工程师#
全部评论
楼主你好,请问你是实习、校招还是社招?岗位是什么?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复 分享
发布于 2020-09-07 16:35
也想请教各位,算法的正确性应该怎么证明呢,一直没想出来咋证明
点赞 回复 分享
发布于 2020-09-07 21:50

相关推荐

狠赚笔第一人:学计算机自己不努力怪大环境?我大一就拿到了美团大厂的offer,好好看看自己有没有努力查看图片
点赞 评论 收藏
分享
一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务