回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

TwoSigma OA 附思路

 
🔗
匿名用户-W4SYG  2022-10-26 05:07:12 |倒序浏览

2022(10-12月) 码农类General 本科 全职@twosigma - 网上海投 - 在线笔试  | 😐 Neutral 🙂 Easy | Pass | 在职跳槽
本帖最后由 匿名 于 2022-10-25 14:11 编辑

原题见图
第一题 股票拍卖
有n份股票,有k个bid,bid里包括userId, price, quantity, timestamp。bid分发要求从价格高的开始,同价格的按照timestamp从小的开始每人发一份,如果股票够多就再发一轮,直到股票发完,或者所有bid都满足。要求返回一份股票都没有领到的userId,按照从小到大排序。

思路
先sort,然后安拍序处理就行了。需要注意的是,这题只要求每个bid最少拿一份股票,所以很简单。

第二题 树状流量切分
给了两个等长的list,一个是parent,一个是size。对于第i个,parent<i>表示父节点的index,size<i>表示净流入的流量大小。一个节点的总流量是自己的净流入量和所有子节点的流量的综合。要求把这个树分成两个树,让两个树的总流量的差值最小。返回最小差值。

思路
数据结构上比较像线段树,所以父节点的index永远小于子节点。我们可以从后往前扫描,1pass得到每个节点的总流量。
对于总流量S,两个树的总流量分别就等于N和S-N,那么最小差值就是求min(abs(S-2N)。2pass就能解决这个问题了

您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 200 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

本帖子中包含更多资源

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

x

评分

参与人数 5大米 +19 收起 理由
fjj0916 + 1 给你点个赞!
andy1996 + 1 很有用的信息!
wwww168 + 1 给你点个赞!
samxzy0207 + 1 欢迎分享你知道的情况,会给更多积分奖励!
匿名用户-Q1ZH1 + 15

查看全部评分


上一篇:tiktok intern vo
下一篇:EPIC OA Oct 2022
地里匿名用户
🔗
匿名用户-W4SYG  2022-10-26 05:08:21
第一题代码

  1. funtion (shareSize, bids) {
  2.     sort(bids)

  3.     index = 0
  4.     while(index < len(bids) and shareSize > 0) {

  5.         int groupSize = 0
  6.         int groupShare = 0
  7.         while((index + groupSize) < len(bids)
  8.             and (bids[index].price == bids[index + groupSize].price)) {
  9.             groupSize += 1
  10.             groupShare += bids[index + groupSize].quantity
  11.         }

  12.         if(shareSize >= groupSize) {
  13.             index += groupSize
  14.         } else {
  15.             index += shareSize
  16.         }
  17.         shareSize -= groupShare;
  18.     }


  19.     result = []
  20.     while(index < len(bids)) {
  21.         result.push(bids[index].userId)
  22.         index += 1
  23.     }
  24.     return result
  25. }
复制代码
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-W4SYG  2022-10-26 05:08:51
第二题代码
  1. funtion (parents, sizes) {
  2.     sums = []

  3.     for i in [n-1, 0]:
  4.         parent = parents[i]
  5.         size = sizes[i]

  6.         sums[i] += size
  7.         sums[parent] += sums[i]

  8.     totalSum = sums[0]
  9.     minDiff = totalSum

  10.     for sum in sums:
  11.         minDiff = min(minDiff, abs(totalSum - sum - sum))

  12.     return minDiff
  13. }
复制代码
回复

使用道具 举报

全局:
这个代码看起来是javascrip写的,但是怎么还有int 呢,看不懂。
回复

使用道具 举报

全局:

chat说这个代码有语法错误
回复

使用道具 举报

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

本版积分规则

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