栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

滴滴实习面经

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

滴滴实习面经

滴滴出行 工程框架与算法 秋储实习生面试

2121.6.22 一面 至今没有二面的通知 凉凉!

自我介绍 没问C++基础 没问数据库

聊项目(以下都是项目里的内容 大概40min 全程1h

进程 线程 的区别 优缺点 TCP/IP UDP各自的优缺点 可靠传输 流量控制 拥塞控制 三次握手 四次挥手 为什么不两次握手 time_wait过多会对系统有什么影响

为什么都用进程 不考虑在一个进程下开辟三个线程?

网络通信模型 7层 socket通信

信号量机制的原子性 信号量加 减 恢复 三个过程是如何体现原子性的

共享内存

锁机制 问我的项目里遇到网络通信问题 是如何解决的 开辟两个进程进行单独处理

建立socket通信进行数据包传输时 如果上一个数据包还没来得及接收 下一个就发送了 怎么处理

多进程并发问题 问做过并发相关的开发嘛 如何处理多进程并发执行的问题 如死锁 介绍了死锁 产生死锁的情况 和如何避免死锁

对于项目中的设备为什么选择在局域网下进行 而不是将两部分集成到一个设备上
问我以后的职业规划


做题 20min

Leetcode 25 k个一组反转链表 困难

输入:1-2-3-4-5-6-7-8

输出:3-2-1-6-5-4-7-8

不太会 直接写了最简单的反转链表

然后说了一下刚才那个题的思路

补充一下代码实现:

struct ListNode
{
	int val;
	ListNode* next;
	ListNode(int x):val(x),next(NULL){}
};

class Solution
{
public:
	ListNode* reverseKGroup(ListNode* head, int k)
	{
		ListNode* last = head;//创建一个指针指向每组的第一个节点
		for (int i = 0; i < k; i++)//首先遍历这一组的k个节点 查看是不是够k个
		{
			if (last == NULL)return head;//不够k个直接返回头节点
			last = last->next;
		}
		ListNode* pre = head;//创建pre指针指向头节点
		ListNode* cur = head->next;//创建cur指针指向头节点的下一个节点
		for (int i = 0; i < k - 1; i++)//对第一组的k个节点进行反转
		{
			ListNode* temp = cur->next;
			cur->next = pre;
			pre = cur;
			cur = temp;
		}
		ListNode* next = reverseKGroup(cur, k);//递归进行下一组的反转
		head->next = next;
		return pre;
	}
};

反问


感悟:
滴滴面试体验也是很不错的 面试官是个挺年轻的哥哥 感觉交流起来也没啥障碍 脾气也蛮好的 各种引导 很有耐心
面试内容真的分企业 参加字节两面 项目都没怎么聊 滴滴上来就直接聊项目 就在项目里深挖 问的很详细 必须得好好准备
比较而言 滴滴得一面比字节一面有难度 也是自己对项目的一些细节没了解透吧
继续面 继续干!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号