星宸科技

一面

时间:2024-9-13 14:00

  • 自我介绍
  • 实习项目的背景
  • 实习项目用到的数据结构
  • 实习是用c++还是c多
  • http服务器实现了哪些功能
  • 异步日志模块的实现
  • c++20协程
  • 智力题:给一个六分钟和八分钟的沙漏,怎么计时10min。
  • vector和list的区别
  • map,自定义的类,怎么作为map的key(回答可以特例化std::less)(其实更简单的是重载operator <)
  • 设计模式是什么?用到哪个?
  • 怎么用c语言实现面向对象
  • 反问:工作内容

二面

时间:2024-9-24 11:00

全是开放性问题,问怎么设计嵌入式系统,怎么用最低的成本满足功能,等等。(一个都答不出)

对于加班,以及工作中的问题如何处理(加班半夜回家途中被召回。我回答说有怨气)。(学到一些话术了,还是不错的)

两个智力题:

1、25匹马,5个赛道,最少跑多少次能找出跑的最快的三匹马?(答的11,面试官说不对)

gpt答案:

要找出最快的三匹马,最少需要进行以下步骤:

  1. 初步分组:将25匹马分成5组,每组5匹马。每组在一个赛道上比赛,找出每组的第一名。这样需要进行5次比赛。
  2. 决赛:将5组的第一名进行比赛,以确定这5匹马中最快的马。这样需要进行1次比赛。到此为止,我们已经进行了6次比赛,并找到了最快的马。
  3. 确定前3名马匹:接下来,我们需要找出第二快和第三快的马。我们知道:第一名马的起始组的所有其他马只能是2、3名马的候选者。第二名马的组中的马也是候选者。第三名马的组中仅有一匹马是候选者(即第一名马的组中的第二名)。具体来说,我们需要考虑:第一名马的组中的第二名和第三名马(共2匹)。第二名马的组中的第一名和第二名马(共2匹)。第三名马的组中的第一名马(共1匹)。综上所述,我们有总共5匹马需要比较:第一名马的组中的第2、第3名,第二名马的组中的第1、第2名,第三名马的组中的第1名。
  4. 最后一次比赛:对这5匹马进行一次比赛,找出其中的前两名马(加上之前的第一名马),这样就能确定最快三匹马。

因此,总共的比赛次数为:5(初步分组) + 1(决赛) + 1(最终确认前3名) = 7次比赛

最少需要7次比赛才能确定最快的三匹马。

2、一个西瓜,可以切9刀,最多能切多少块,最少能切多少块?(答的10和30,面试官说不对)

gpt答案:

对于一个西瓜,切9刀时,可以得到的块数的最大和最小值分别如下:

最大块数

每一刀都要尽量与之前的刀相交,以获得更多的块。切的方式可以保证每一刀都切穿所有之前切出的部分。理论上,切出的块数可以用以下公式计算:

最大块数=n(n+1)/2+1。其中 n 是刀的数量。

对于9刀:最大块数=9*(9+1) / 2+1=9×102+1=45+1=46

因此, 最多能切成46块

最小块数

如果每一刀仅仅是切分,而不与之前的刀交叉,那么每一刀只会将西瓜切成两部分。因此,9刀的情况下,至少会有:

最小块数=n+1最小块数=n+1

对于9刀:

最小块数=9+1=10最小块数=9+1=10

因此, 最少能切成10块

综上所述:

  • 最多切成46块
  • 最少切成10块
全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务