查看: 1586| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[CareerCup] 有多少非空Subsets满足最小+最大小于等于K?

全局:

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

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

x
本帖最后由 14417335 于 2019-2-25 08:27 编辑

// For a given vector of integers and integer K, find the number of non-empty subsets S such that min(S) + max(S) <= K
// For example, for K = 8 and vector [2, 4, 5, 7], the solution is 5 ([2], [4], [2, 4], [2, 4, 5], [2, 5])

The time complexity should be O(N2). Approach and code was asked

题目没说但是我猜:虽然每个subsets里可以有重复,但应该会要求subsets S和其它subsets不能重复。不知道有无N LogN 的解法。

比如对于 [1,1,3,3,3,2,2,9] K=5,应该有:35种
f(1,1)=2
f(1,2)=4
f(1,3)=18
f(2,2)=2
f(2,3)=6
f(3,3)=3

面试人虽然说2,4,5,7, K=8有5种。但我怎么感觉有7种?([2], [2, 4], [2, 4, 5], [2, 5], [4], [5], [7])
f(2,2)=1
f(2,4)=1
f(2,5)=2f(4,4)=1
f(5,5)=1

f(7,7)=1



上一篇:GS的一道区间调度问题 租车给那些人?
下一篇:本科毕业找工作可以把hard放到最后有空再刷吗
🔗
 楼主| 14417335 2019-2-25 09:25:06 | 只看该作者
全局:
改正:

对于 [1,1,3,3,3,2,2,9] K=5,应该有:32种
f(1,1)=2
f(1,2)=4
f(1,3)=18
f(2,2)=2
f(2,3)=6
f(3,3)=0 因为3+3 > K

对于[2,4,5,7], K=8的确是有5种。([2], [2, 4], [2, 4, 5], [2, 5], [4])f(5,5)=0 因为5+5 > K
f(7,7)=0 因为7+7 > K

回复

使用道具 举报

🔗
Leoaqr 2019-2-25 15:34:23 来自APP | 只看该作者
全局:
lz是刚参加完微软onsite么...
回复

使用道具 举报

🔗
 楼主| 14417335 2019-2-25 21:56:45 | 只看该作者
全局:
Leoaqr 发表于 2019-2-25 15:34
lz是刚参加完微软onsite么...

不是。在careercup上这是道新题,标注的tag是谷歌。没想到微软也测这题。
回复

使用道具 举报

🔗
scidylanpno 2019-2-27 14:53:43 | 只看该作者
全局:
瞎逼逼几句:
既然是subsets,那么就和顺序无关了。
先排序,去重(统计每个数的个数)
枚举最小值m,然后找到最大的小于等于(K-m)的那个数M,那么集合中m必选,m与M之间的数的所有组合都满足要求,2的幂
此外,由于枚举的是最小值,m不断变大,那么M是不断变小的,找M的复杂度总共为O(N)
细节注意下就好
复杂度大概就是排序的复杂度了?

比如 [ 2, 4, 5, 7 ] :
- 枚举 2 ,找到 5 ,那么就把[ 4, 5 ]随意组合,有 2^2=4 种: [ 2 ] [ 2 4 ] [ 2 5 ] [ 2 4 5 ]
- 枚举 4 ,找到 4 ,那么就把[ 空 ]随意组合,有2^0=1种: [ 4 ]
- 枚举 5 ,找到 2 ,但此时5不再是最小值,结束
一共有 4+1=5 种
回复

使用道具 举报

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

本版积分规则

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