Java最新《关于我的那些面经》——百度后端(附答案(1),java并发面试题

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

MySQL50道高频面试题整理:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

百度是全球最大的中文搜索引擎,是中国最大的以信息和知识为核心的互联网综合服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

百度作为全球最大的中文搜索引擎,百度每天响应来自100余个国家和地区的数十亿次搜索请求,是网民获取中文信息的最主要入口。百度以“用科技让复杂的世界更简单”为使命,不断坚持技术创新,致力于“成为最懂用户,并能帮助人们成长的全球顶级高科技公司”。

百度是中国最大的以信息和知识为核心的互联网综合服务公司。在AI驱动下,百度的移动生态是中国最大的以信息和知识为核心的移动生态,以百家号、智能小程序和托管页为主要支柱。2019年百度用户规模突破10亿。百度App日活跃用户2.22亿,信息流位居中国第一。百家号创作者达到300万。百度智能小程序是国内唯一完全开源的小程序平台,月活用户规模破3.54亿。百度知道百度百科百度文库等六大知识类产品累计生产超10亿条高质量内容,构建了中国最大的知识内容体系。

百度是全球领先的人工智能平台型公司。百度大脑是中国唯一的“软硬一体AI大生产平台”,是百度AI的集大成,对外全方位输出超过250多项AI能力。飞桨是中国首个全面开源开放、功能完备的产业级深度学习平台,是中国自主研发的“智能时代的操作系统”。百度智能云是百度AI To B业务的重要承载者和输出者,是产业智能化领导者。小度助手是中国最大的对话式人工智能操作系统,拥有中国市场规模最大、最繁荣的对话式人工智能生态,2020年3月,小度助手语音交互次数超过65亿次。作为全球最大自动驾驶开放平台,Apollo代表中国最强自动驾驶实力,被知名研究公司Navigant Research列为全球四大自动驾驶领域领导者之一。目前已形成自动驾驶、车路协同、智能车联三大开放平台。自动驾驶方面,超过十项中国第一,技术实力领跑行业。智能交通方面,百度“ACE交通引擎”是全球首个车路行融合的全栈式智能交通解决方案。

废话少说BATTMD哪个公司不是吹的天花乱坠,直接看工资

校招

SP代表special offer

SSP的offer级别还在SP之上

一般情况下薪资专栏中的18*15

是指1.8w一个月,一年总共15个月

其中15一般是13个月工资,包括2个月的年终奖

简单科普结束以后我们来看看数据吧

这是硕士的薪资,本科的自行减去1-2k,测试岗也是从研发减去1-2k。

社招

薪资方面呢,在BATTMD中不算很有竞争力,但是今年还是涨了不少,算是很有诚意,适合喜欢所谓“技术”以及没有更好选择的同学去。

二、对公司的评价

============

产品之神俞军在移动互联网前夕走了,百度在10-20掉队了,这是不可否认的事实。但是最近两年,百度一直在改变,押宝在无人车上。去年股票也确实表现不错,暂时可以坚持下去。

市值:1145亿美元(比去年翻了不止一倍,之前还以为他凉凉了)

三、面试过程

==========

1)如何判断链表是否有环?

像模像样的要我现场写了一遍,说了一遍思路。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

示例 1:

输入:head = [3,2,0,-4], pos = 1

输出:true

解释:链表中有一个环,其尾部连接到第二个节点。

示例 2:

输入:head = [1], pos = -1

输出:false

解释:链表中没有环。

进阶:

你能用 O(1)(即,常量)内存解决此问题吗?

思路:首先我们要明白,链表不可能出现这种情况:

因为一个结点只有一个指针,所以链表只可能向实例一那样,在末尾出现一个环。

慢指针一次一步,快指针一次两步。能相遇就是有环,反之没有环。就像操场跑步,跑的快的总有一天可以追慢的一圈,相遇。

/**

  • Definition for singly-linked list.

  • class ListNode {

  • int val;
    
  • ListNode next;
    
  • ListNode(int x) {
    
  •     val = x;
    
  •     next = null;
    
  • }
    
  • }

*/

public class Solution {

public boolean hasCycle(ListNode head) {

if (head == null || head.next == null) {

return false;

}

ListNode slow = head;

ListNode fast = head.next;

while (slow != fast) {

if (fast == null || fast.next == null) {

return false;

}

slow = slow.next;

fast = fast.next.next;

}

return true;

}

}

那么,这对于懂算法的人来说可能是烂大街的问题,有些人可能不屑于看了,那么,第二个问题来了:如果让那个快指针一次走三步,还能不能做正确的答案呢?一次四步呢?五步呢?

如果看的人多,我会在下一期公布答案哈哈,大家不要以为应试被题就可以过关。

2)介绍一下堆这种数据结构

大根堆要求

①根节点的关键字既大于或等于左子树的关键字值,又大于或等于右子树的关键字值。

②为完全二叉树

注意这是递归定义的。

对于大根小根堆,递归定义,实现,空间复杂度,各种操作的时间复杂度,真实写二叉树的情况和数组模拟的情况都要会。

有人要问了,会这些算法有啥用?其实Java的优先队列就是堆结构。八大排序之一的堆排序也是数组上堆结构,面试官让我手动实现一个,以下是实现。

/*

================================================

功能:堆排序

输入:数组名称(也就是数组首地址)、数组中元素个数

注:画画

================================================

*/

/*

功能:建堆

输入:数组名称(也就是数组首地址)、参与建堆元素的个数、从第几个元素开始

*/

void sift(int *x, int n, int s)

{

int t, k, j;

t = *(x+s); /暂存开始元素/

k = s; /开始元素下标/

j = 2*k + 1; /左子树元素下标/

while (j<n)

{

if (j<n-1 && *(x+j) < *(x+j+1))/判断是否存在右孩子,并且右孩子比左孩子大,成立,就把j换为右孩子/

{

j++;

}

if (t<*(x+j)) /调整/

{

*(x+k) = *(x+j);

k = j; /调整后,开始元素也随之调整/

j = 2*k + 1;

}

else /没有需要调整了,已经是个堆了,退出循环。/

{

break;

}

}

*(x+k) = t; /开始元素放到它正确位置/

}

/*

功能:堆排序

输入:数组名称(也就是数组首地址)、数组中元素个数

注:

  • *
    

建堆时,从从后往前第一个非叶子节点开始调整,也就是“-”符号的位置

*/

void heap_sort(int *x, int n)

{

int i, k, t;

//int *p;

for (i=n/2-1; i>=0; i–)

{

sift(x,n,i); /初始建堆/

}

for (k=n-1; k>=1; k–)

{

t = *(x+0); /堆顶放到最后/

*(x+0) = *(x+k);

*(x+k) = t;

sift(x,k,0); /剩下的数再建堆/

}

}

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点

学习视频:

大厂面试真题:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

sift(x,k,0); /剩下的数再建堆/

}

}

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点

学习视频:

[外链图片转存中…(img-U3sAVeO6-1715416117022)]

大厂面试真题:

[外链图片转存中…(img-4Gef1zFp-1715416117023)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值