<
回复: 10
收起左侧

Postmates oa

本楼:   👍  1
100%
0%
0   👎
全局:   79
99%
1%
1

2020(4-6月) 码农类General 硕士 全职@postmates - 猎头 - 在线笔试  | Pass | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
可能当前对Postmates感兴趣的朋友不多,但是作为练手还是不错的。他们的oa一共4题,前3题很简单我就略过了,下面是第4题:
一个list a, 里面是每段绳子的长度,可以裁剪绳子,一个整数k, 表示最后需要的绳子根数,求返回每根绳子可能的最长长度。e.g. a = [7, 2, 3, 4, 9], k = 5, 返回3.
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
0 + 1 + 2,没办法得到5根.

如果觉得有用的话请打赏点大米,谢谢

评分

参与人数 3大米 +9 收起 理由
ProveYourself + 1 给你点个赞!
willwillzhang + 3 给你点个赞!
清道神君 + 5

查看全部评分


上一篇:衣被电面(06/03)
下一篇:Coupang 遗憾VO
 楼主| deyomizy 2020-6-4 12:31:58 | 显示全部楼层
本楼:   👍  1
100%
0%
0   👎
全局:   79
99%
1%
1
sagefrog 发表于 2020-6-4 10:35
感觉是个二分法。求问楼主是猎头领英骚扰的么 谢谢

是的,二分法就可以了。我是在领英被联系的,他们的节奏很快,可能最近招人有点急哈哈
回复

使用道具 举报

sagefrog 2020-6-4 10:35:46 来自APP | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   68
92%
8%
6
感觉是个二分法。求问楼主是猎头领英骚扰的么 谢谢
扫码关注一亩三分地求职移民公众号
更多干货内容等你发现
回复

使用道具 举报

willwillzhang 2020-6-19 09:25:31 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   97
92%
8%
9
第四题 这个二分法 怎么个思路?蠡口上有相似的题吗?
回复

使用道具 举报

 楼主| deyomizy 2020-6-19 10:01:41 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   79
99%
1%
1
willwillzhang 发表于 2020-6-19 09:25
第四题 这个二分法 怎么个思路?蠡口上有相似的题吗?

不太有印象是不是有类似题。但是大概思路就是通过题目能很快找到答案的最大和最小可能值,然后在这个区间里用二分法 - 每一个中间数可以验证是否符合要求
回复

使用道具 举报

willwillzhang 2020-6-19 10:56:21 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   97
92%
8%
9
deyomizy 发表于 2020-6-19 10:01
不太有印象是不是有类似题。但是大概思路就是通过题目能很快找到答案的最大和最小可能值,然后在这个区间 ...

哦 明白了。 例如, a = [7, 2, 3, 4, 9], k = 5,   就是sort下, 看下中间值(3)是不是满足条件,满足则往右走,不满足则忙左走, 再取新区间的中间数。

回复

使用道具 举报

zswsweet 2020-9-3 11:32:07 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   12
92%
8%
1
willwillzhang 发表于 2020-6-19 10:56
哦 明白了。 例如, a = [7, 2, 3, 4, 9], k = 5,   就是sort下, 看下中间值(3)是不是满足条件,满足 ...

应该不是这样,min = 1, max = max(nums),代表绳子的最大长度,最小是1, 最大是array里面最长的,然后来二分,不需要sort
回复

使用道具 举报

johnnywsd 2020-9-11 16:08:29 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   81
100%
0%
0
本帖最后由 johnnywsd 于 2020-9-11 16:20 编辑
deyomizy 发表于 2020-6-19 10:01
不太有印象是不是有类似题。但是大概思路就是通过题目能很快找到答案的最大和最小可能值,然后在这个区间 ...

下面是这个的代码实现。
  1. # -*- coding: utf-8 -*-# -*- coding: utf-8 -*-"""
  2. 一个list a, 里面是每段绳子的长度,可以裁剪绳子,一个整数k, 表示最后需要的绳子根数,
  3. 求返回每根绳子可能的最长长度。e.g. a = [7, 2, 3, 4, 9], k = 5, 返回3
  4. """


  5. def cut_rope(arr, k):
  6.     if not arr:
  7.         if k != 0:
  8.             return -1
  9.         else:
  10.             return

  11.     min_len = min(arr)
  12.     max_len = max(arr)

  13.     # binary search
  14.     l = min_len
  15.     r = max_len
  16.     while l + 1 < r:
  17.         m = (l + r) / 2
  18.         if lte_count(arr, m) >= k:
  19.             l = m
  20.         else:
  21.             r = m
  22.     if lte_count(arr, r) >= k:
  23.         return r
  24.     if lte_count(arr, l) >= k:
  25.         return l
  26.     return -1


  27. def lte_count(arr, limit):
  28.     count = 0
  29.     for it in arr:
  30.         count += it // limit
  31.     return count


  32. import unittest

  33. class Test(unittest.TestCase):
  34.     def test_1(self):
  35.         self.assertEqual(
  36.             cut_rope([7, 2, 3, 4, 9], 5),
  37.             3
  38.         )

  39.     def test_2(self):
  40.         self.assertEqual(
  41.             cut_rope([7, 2, 3, 4, 9], 2),
  42.             7
  43.         )

  44.     def test_3(self):
  45.         self.assertEqual(
  46.             cut_rope([7, 2, 3, 4, 9], 6),
  47.             3
  48.         )

  49.     def test_4(self):
  50.         self.assertEqual(
  51.             cut_rope([7, 2, 3, 4, 9], 1),
  52.             9
  53.         )

  54.     def test_5(self):
  55.         self.assertEqual(
  56.             cut_rope([], 1),
  57.             -1
  58.         )

  59. if __name__ == '__main__':
  60.     unittest.main(verbosity=2)
复制代码

回复

使用道具 举报

johnnywsd 2020-9-11 16:09:44 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   81
100%
0%
0
本帖最后由 johnnywsd 于 2020-9-11 16:16 编辑
应该是求第K大的数吧。
最优算法是quickselect。

说错了,没考虑到一个绳子可以分两段。 例如 9 可以拆成两个4的绳子和1的废料
回复

使用道具 举报

Smilenceyu 2020-9-29 16:29:51 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   2403
95%
5%
135
最后分的绳的长度一定是整数吗 还是可以小数??
回复

使用道具 举报

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

本版积分规则

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