字节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

相关推荐

Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
1 5 评论
分享
牛客网
牛客企业服务