<
回复: 5
收起左侧

冷门b2b crypto - Paxos

匿名用户-8PZIO  2022-4-14 01:27:36
本楼:   👍  0
0%
0%
0   👎

2022(1-3月) 码农类General 硕士 全职@paxos - 猎头 - 技术电面  | 😐 Neutral 🙂 EasyFail | 在职跳槽

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

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

x
公司recruiter直接找的我,然后和HM额外聊了一轮之后,到了店面,面的是一个关于安全的组。店面撇开寒暄三问,只有一道关于黄金和美刀交易的OOD题,听面试官说需求,然后你跟着写代码,反正不难。有些细节我忘了,具体直接扔代码吧。
  1. // Trade:
  2. // id, type (BUY/SELL), totalGold, totalUSD, ourTag, theirTag
  3. // where:
  4. // totalGold, totalUSD > 0
  5. // for all ourTag theirTag, ourTag != theirTag (these are non-intersecting sets)

  6. // Net Position:
  7. // netGold, netUSD
  8. // where:
  9. // -Infinity < netGold, netUSD < Infinity

  10. // Problem 1:
  11. // Input: List of `Trade`s
  12. // Output: Net Position for those trades

  13. // Example:
  14. // For the two trades with ids "A" and "B" here
  15. //  * “A”, BUY, totalGold = 1, totalUSD = 1750
  16. //  * “B”, SELL, totalGold = 0.25, totalUSD = 750

  17. // The Net Position is:
  18. //     netGold = 0.75, netUSD = -1000

  19. class Test {
  20.   class Trade {
  21.     int id;
  22.     String type;
  23.     BigDecimal totalGold;
  24.     BigDecimal totalUSD;
  25.   }
  26.   
  27.   class NetPosition {
  28.     double totalGold;
  29.     double totalUSD;
  30.     public NetPosition(double totalGold, double totalUSD) {
  31.       this.totalGold = totalGold;
  32.       this.totalUSD = totalUSD;
  33.     }
  34.   }
  35.   
  36.   public NetPosition process(List<Trade> trades) {
  37.     double totalGold = 0;
  38.     double totalUSD = 0;
  39.    
  40.     for (Trade trade : trades) {
  41.       if (trade.type.equals("BUY") {
  42.         totalGold += trade.totalGold;
  43.         totalUSD -= trade.totalUSD;
  44.       } else {
  45.         totalGold -= trade.totalGold;
  46.         totalUSD += trade.totalUSD;
  47.       }
  48.     }
  49.          
  50.     return new NetPosition(totalGold, totalUSD);
  51.   }
  52. }

  53. // Trades:
  54. // * A: ourTag = “x”, theirTag = “0”
  55. // * B: ourTag = “x”, theirTag = “1”
  56. // * C: ourTag = “y”, theirTag = “1”
  57. tag: x, 0, y, 1
  58.          
  59. // * D: ourTag = “z”, theirTag = “2”

  60. // A,B,C are in the same group.
  61. // D is in a group by itself.

  62. // Problem 2:
  63. // Input: List of Trades, a tag
  64. // Output: The NetPosition for (the group of Trades containing that tag).
  65. class Test {
  66.   class Trade {
  67.     int id;
  68.     String type;
  69.     double totalGold;
  70.     double totalUSD;
  71.     String ourTag;
  72.     String theirTag;
  73.   }
  74.   
  75.   class NetPosition {
  76.     double totalGold;
  77.     double totalUSD;
  78.     public NetPosition(double totalGold, double totalUSD) {
  79.       this.totalGold = totalGold;
  80.       this.totalUSD = totalUSD;
  81.     }
  82.   }
  83.   
  84.   public NetPosition process(List<Trade> trades, String tag) {
  85.     Map<String, String> parent = new HashMap<>();
  86.    
  87.    
  88.     // initialize
  89.     // O(n)
  90.     for (Trade trade : trades) {
  91.       parent.put(trade.ourTag, trade.ourTag);
  92.       parent.put(trade.theirTag, trade.theirTag);
  93.     }
  94.          
  95.     // iterate trades
  96.     // O(n^2)
  97.     // p1: root for ourTag, p2: root for theirTag
  98.     // if it's the same, it's already the top
  99.     // if it's not, building relation between p1 and p2.
  100.    
  101.     // have a map building relationship with root tag and the list of trades
  102.    
  103.     // same as q
  104.   }
  105.   
  106.     private String find(Map<String, String> map, String tag) {
  107.     return !map.get(tag).equals(tag) ? find(map, map.get(tag)) : tag;
  108.   }
  109. }
复制代码
我自己作为面试官,觉得自己答得还行,这种题本来就是强
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
现在有和南美电商巨头mercado libre有合作,谨慎看好吧。就当攒人品啦~

上一篇:甲骨文新鲜店面
下一篇:foursquare挂经
soulmachine 2022-12-10 09:58:57 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1628
96%
4%
70
这题是个典型的并查集的题目,算法题,并不是OOD题目,而且代码量还挺大。需要把 ourTag, theirTag 统一映射到整数下标,然后不断merge。
回复

使用道具 举报

billyRandom 2023-2-18 04:10:02 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   36
97%
3%
1
soulmachine 发表于 2022-12-9 17:58
这题是个典型的并查集的题目,算法题,并不是OOD题目,而且代码量还挺大。需要把 ourTag, theirTag 统一映 ...

不太理解这个例子:
# Trades:
* A: ourTag = “x”, theirTag = “0”
* B: ourTag = “x”, theirTag = “1”
* C: ourTag = “y”, theirTag = “1”
* D: ourTag = “z”, theirTag = “2”
* E: ourTag = “y”, theirTag = “3”
*‍‍‌‌‍‌‍‍‌‍‍‌‌‍‍‍‍‌‌ F: ourTag = “w”, theirTag = “3”

A,B, C, E & F are in one group
D is alone

这是说x,y,w 是一个group?0,1,3是一个group?z是一个group, 2是一个group?
回复

使用道具 举报

billyRandom 2023-2-22 08:17:26 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   36
97%
3%
1
billyRandom 发表于 2023-2-17 12:10
不太理解这个例子:
# Trades:
* A: ourTag = “x”, theirTag = “0”

有人解释一下吗?明天就要面了
回复

使用道具 举报

地里匿名用户
匿名用户-RAOCS  2023-3-3 01:03:08
本楼:   👍  0
0%
0%
0   👎
billyRandom 发表于 2023-2-21 16:17
有人解释一下吗?明天就要面了

层主最后面试如何了? 可否分享一下面经?
回复

使用道具 举报

地里匿名用户
匿名用户-S2PJB  2023-8-28 14:48:44
本楼:   👍  0
0%
0%
0   👎
soulmachine 发表于 2022-12-9 20:58
这题是个典型的并查集的题目,算法题,并不是OOD题目,而且代码量还挺大。需要把 ourTag, theirTag 统一映 ...

can you please code for union search?
回复

使用道具 举报

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

本版积分规则

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