程序员社区

20春腾讯视频一、二、三面(已挂) + (Java面经分享)

今天给大家分享一篇 20春腾讯视频一、二、三面(已挂), 希望大家在面试中能够斩获Offer, 找到自己满意的工作。 一起来看看吧~

最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题。

点击下载完整PDF☞ 2022年最新Java面试题集

2020-03-25 一面

自我介绍
面试题:
1
、二分查找树里查询一个关键字的最坏时间复杂度是
______
A

O(n)        B

O(n log n)        C

O(n^2)        D

O(n^3)        E

O(logn)        F
、不确定
2
、以下函数的时间复杂度是



void func(int x,int y, int z){
if(x<=0)
printf("%d, %d\n", y, z);
else {
func(x-1,y+1,z);
func(x-1,y,z+1);
}
}
A.O(x*y*z)
B.O(x^2*y^2)
C.O(2^x)
D.O(2^x*2^y*2^z)
E.O(x!)
F.O((x*y*z)!)
3.
一个栈的入栈序列为
ABCDEF
,则不可能的出栈序列是(


A

DEFCBA

B

DCEFBA

C

FEDCBA

D

FECDBA

E

ABCDEF

F

ADCBFE
4
、用
0,1,2,3,4,5
组成一个
4
位数,要求每一位都不一样,请问能组成多少个四位数(

A.240
B.280
C.300
D.360
E.400
F.450
5
、如果一个博物馆参观者到达的速率是每分钟
20
人,平均每个人在馆内停留
20
分钟,那么该博物馆至少需要容纳
______
人才行?
A

100        B

200        C

300        D

400        E

500        F

600

算法题:
1. 股票的最大利润(剑指offer上的经典题目)

2.
在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。


示例 1:


输入: 4->2->1->3


输出: 1->2->3->4


示例 2:


输入: -1->5->3->4->0

输出: -1->0->3->4->5

思路:归并排序
public class Main {
    public static void main(String[] args) {
        
    }
    public ListNode sortList(ListNode head) {
        if(head != null || head.next != null) return head;
        ListNode fast = head.next;
        ListNode slow = head;
        // 找到中点进行分割
        while(fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        // 归并排序
        ListNode temp = slow.next;
        ListNode left = sortList(head);
        ListNode right = sortList(temp);
        ListNode res = new ListNode(1);
        while(left != null && right != null) {
            if(left.val > right.val) {
                res.next = right;
                right = right.next;
            }
            else {
                res.next = left;
                left = left.next;
            }
            res = res.next;
        }
        if(left != null) res.next = left;
        else res.next = right;
        return res;
    }
}

3. leetcode最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

push(x) -- 将元素 x 推入栈中。


pop() -- 删除栈顶的元素。


top() -- 获取栈顶元素。


getMin() -- 检索栈中的最小元素。


思路:
使用辅助栈的方式,用一个栈来保存当前的最小值,每次弹出栈,辅助栈也同步进行弹出,正常的栈结构不受影响,压入辅助栈时判断当前元素是否比最小值还小,若比最小值还小则更新最小值并压入,否则讲最小值压入辅助栈。

项目相关问题

集合的底层实现,源码
ArrayList:扩容
HashMap

状态码含义:
直接说了2xx 3xx 4xx 5xx 分别对应的情况

2020-03-27 二面

两队列模拟堆栈:


两堆栈模拟队列:
我的想法:假设有两个栈AB,每次压入栈A,每次弹出
赞(0) 打赏
未经允许不得转载:IDEA激活码 » 20春腾讯视频一、二、三面(已挂) + (Java面经分享)

一个分享Java & Python知识的社区