盛夏不再剩下 level
获赞
164
粉丝
73
关注
36
看过 TA
1788
福建理工大学
2025
C++
IP属地:广东
暂未填写个人简介
私信
关注
07-13 13:19
已编辑
福建理工大学 C++
时间线 7.1投递简历7.11一面7.12挂面试内容:三道算法题//不会做,没想到可以这样转化.1.Alice和Bob两个人正在玩游戏,轮流操作. Alice先手.给定一个非严格递增的非负整数的数组, 每次操作选择一个区间[l,r]全部减一.条件1:操作后的数组还是满足非严格递增条件2:当数组元素全为0,则判定失败.问谁胜利?输入一个正整数n, 接下来输入n个元素,表示数组内容.样例: 31 1 1 输出:Alice胜20 2输出:Bob胜题解:把数组转化为差分数组.区间-1操作,即变成选定下标[i,j] a[i]-1, a[j]+1,全部元素为0则失败用石头的角度来看,对于第i堆的每个石头,可以移动 1,2,3,...n+1-i 次.那么问题就转化成了经典nim博弈.ans = 0;a[i]的石头数是奇数,ans^= n+1-i;//a[i]是已经是差分数组了.最终ans为0,则先手必败,反之,先手必胜.//做了n*m的DP,没想到鸽巢原理2.给定n,m.其中 n给定一个n个元素的非负整数数组,问该数组是否存在一个非空序列,满足序列中的元素之和是m的倍数.  样例:3 55 5 5 输出:YES  题解:鸽巢原理 + DP通过鸽巢原理,可以发现,当n>=m时,必然存在一个子序列之和是m的倍数.直接输出YES当n设dp[i][j]表示只看前i个元素,是否存在和%m为j的子序列.dp[i][j] |= dp[i-1][j];//不选dp[i][j] |= dp[i-1][((j - a[i])%m + m) % m];//选最终输出dp[n][m]即可.//写出来了3.智力题有一千个人犯罪后被抓了起来,他们被要求玩一个游戏来为自己免罪:他们提前得知了游戏规则:典狱长会随机抽取这些犯人出来,他们会面对同一个桌子,上面有一枚硬币1.犯人被叫出来可以指定这个硬币的正反面,也就是可以不动其正反性,也可以翻转。当他们操作完后就会被放回独立的牢房内2.当某个犯人说出所有犯,人都已经被叫出来过了,且此时真的所有犯人都被叫出来了的话。犯人就胜利了3.已知硬币一开始为正面其中:典狱长会随机抽选犯人,这意味着他可能会叫出来某个犯人无数次,我们忽略他们花费的时间,假设典狱长是一个真随机的机器,并不断叫出犯人来完成这样的操作有几个注意的点:1.犯人们只有关押前提前知道了这件事情,他们可以约定一个必胜策略,这就需要你来帮助他们了2.在游戏开始后(典狱长开始随机抽选)时犯人们不能直接通信,他们被关押起来>3.请你设计一个必胜的游戏策略可以在有限次(即期望完成游戏的轮次不能为无限)点名后某个犯人能确定所有人真的全都被叫出来过,并且战胜典狱长当时的题解:犯人们约定一个计数员.计数员负责计数,当看到硬币为反,则操作把硬币变为正,然后心里计数 +1 ,看到硬币为正,则不操作,然后心里计数 +1每个犯人约定只翻转一次,当看到硬币为反,则不操作,看到硬币为正,则翻转.当计数员数到 999时,即可大声汇报.面试时长1h30min第二题做了一半第三题智力题通过隔日挂(据说算法题有做出一道就能过)
sfskjvr:什么岗位呀
元戎启行一面30人在聊 查看2道真题和解析
0 点赞 评论 收藏
分享
2023-12-29 21:55
已编辑
福建理工大学 C++
总而言之,一塌糊涂。问啥啥不会,相当尴尬。一面基本都是问算法问题和非技术问题,给过了。由于一面把会的都问过了,于是二面就没得问了。面试官:你的简历好简洁啊.面试官:看你简历上写的是单机型数据库,你了解分布式数据库嘛?我:不了解。面试官:看你写了个缓存池管理器,他主要是干嘛的?有没有考虑过上一些内存池?我:根据局部性原理,为了加快常用页面的访问,不了解内存池。然后面试官临时接了个紧急电话。面试官: 这个项目和算法一面的时候应该问过了,我问点别的技术栈吧。你了解操作系统或者计算机网络编程嘛?我:不了解。陷入30s沉默面试官:    emm。好吧。嗯。那问点基础的叭。那我们问点关于C++的内存管理吧面试官: 什么情况下必须用堆来存储变量?不会。陷入30s沉默.事后查了一下:1.动态内存分配:当无法确认变量所需的内存大小时,可以用堆来进行动态内存分配。2.对象生命周期超过作用域:如果希望某个函数或代码块结束后,仍然访问其中的某个变量,需要用static将其存储在堆上.3.大型数据结构:当需要存储大型数据结构,如大型数组,树,或者复杂的对象,堆可以提供足够的内存空间来存储。4.动态数据结构:某些数据结构需要在运行的时候根据需求进行动态调整,如堆,优先队列,树等,这些数据结构的大小和结构可能在程序的执行过程中发生改变,所以需要用堆来存储.我说我可以给她介绍一下多态。介绍...面试官:为什么父类的析构函数需要定义成虚函数嘛。我:当父类的指针指向派生类对象时,只能通过虚析构来释放整个空间.面试官:我们还是可以聊一下操作系统吧面试官:linux操作系统内核大概包含哪些东西.我:不懂。面试官:你对多线程熟吗?要不挑战写一个多线程问题我:不懂。面试官尬笑。陷入沉默30s面试官:那我们写一个合并递增链表吧。然后因为没刷过leedcode链表,写了20分钟。然后结束。顺利挂掉。复盘:1.一定要沉淀好自己,不要着急面试,会浪费掉宝贵的面试机会。2.一定要把C++语法,操作系统,计算机网络的八股系统的学一遍,背一遍。不然就会发生一面过了,二面没得问。3.leedcode链表题,二叉树啥的指针题,一定要去刷。不是说难,就是要熟练度。
0 点赞 评论 收藏
分享
2023-12-21 18:32
福建理工大学 C++
笔试:12.15初创公司出题不易,就不透漏啦。一面:12.203分钟自我介绍.20分钟技术面:10分钟问项目,问项目中的lru算法的思想及其和实现. 讲完之后,我扩展到lru-k算法,同时也讲了思想和实现.5分钟让我讲解动态规划算法,让我讲解用过的动态规划题目.比如最长上升子序列,最长公共子串,背包问题等等.然后让我详细讲解最长公共子串,如何实现.然后问我动态规划的两个前提条件: 最优子结构,无后效性.5分钟让我讲解图论,然后给了个场景题,问我思路.场景题:生活中的很多场景都可以抽象为图论的模型,比如说  我现在有一些C++代码需要编译,代码有编译时间且这些代码有前后依赖关系,问我能否把这个整个依赖过程图像化.答:直接用拓扑排序即可. 接下来问说完成所有代码编译的最短时间答: 拓扑排序上跑DP即可.问如果是多核的呢?  答:如果核数小于最大层数的节点个数,则直接贪心跑dfs.如果核数大于等于最大层数的节点个数,跟之前一样跑DP即可.10分钟非技术面.自我感受: 感觉这个面试官人很好,很认真的倾听,全程聊天和答疑给人很舒服的感觉,然后自己问题答的太急了,经常打断面试官,然后讲解知识的时候将的太过简要,面完之后面试官建议说,讲解的时候应该要讲解的细一点,要假设对方是一个小白(打acm打的,口胡的时候,追求的就是一个快。。然后经常默认对方都懂。),然后要稳重一点,不要着急。加油!!继续沉淀然后10分钟后,通知过一面。希望下周二面加油(感觉应该要G了,啥都不会┭┮﹏┭┮).
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务