12
返回列表 发新帖
楼主: 墨痕无香
跳转到指定楼层
上一主题 下一主题
收起左侧

uber电面 新鲜面经

🔗
飞天sb飞翔 2018-11-29 11:40:33 | 只看该作者
全局:
墨痕无香 发表于 2018-11-29 10:53
这属于非法输入了。。。只要跟面试官确认 输入都合法就行了

好的 多谢哈~
回复

使用道具 举报

🔗
yyoung 2018-12-10 16:20:04 | 只看该作者
全局:
这题怎么看起来像 253 Meeting Room II 啊?
回复

使用道具 举报

🔗
gamesover 2019-2-7 21:59:44 | 只看该作者
全局:
yyoung 发表于 2018-12-10 16:20
这题怎么看起来像 253 Meeting Room II 啊?

话不多说,直接上代码,请指教

  1. def longestPoolChain(intervals)
  2.   sortedIntervals = intervals.sort_by(&:first) # 假设给的arry是乱序的,如果根据timestamp顺序过来,这个sort可以省

  3.   pools = []
  4.   map = {}
  5.   
  6.   sortedIntervals.each do |interval|
  7.     driverId = interval[1]
  8.     if map.key?(driverId)
  9.       pools << [map[driverId], interval]
  10.       map.delete(driverId)
  11.     else
  12.       map[driverId] = interval
  13.     end
  14.   end

  15.   sortedPools = pools.sort_by {|pool| pool[0][0]}

  16.   head, tail = sortedPools[0]
  17.   currentPools = 1
  18.   maxPools = 1
  19.   (1...sortedPools.size).each do |i|
  20.     pool = sortedPools[i]

  21.     if pool[0][0] <= tail[0]
  22.       head = [head, pool[0]].max_by(&:first)
  23.       tail = [tail, pool[1]].min_by(&:first)
  24.       currentPools += 1
  25.       maxPools = [maxPools, currentPools].max
  26.     else
  27.       head, tail = pool
  28.       currentPools = 1
  29.     end
  30.   end

  31.   maxPools
  32. end

  33. logs = [[101, 1, 1, "P"], [102, 1, 1, "D"], [105, 3, 3, "P"],
  34.   [107, 2, 2, "P"], [109, 2, 2, "D"],  [111, 3, 3, "D"],
  35.   [115, 1, 1, "P"], [120, 1, 1, "D"]]

  36. p longestPoolChain(logs) # 2
复制代码


居然没有ruby语言选择,不知道能不能高亮[/i]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表