Untitled

 avatar
unknown
plain_text
a year ago
1.7 kB
14
Indexable
遇到的是在地理有发过的问题。跟recruiter沟通的时候,说可以用AI。在面的时候,面试官有说可以选择用AI或者不用。如果用的话,是另外一个criteria。所以我保险起见就说不用了。因为还没在面的时候用过AI,也不想面试难度增加。面完第二天就给结果了。
以下内容需要积分高于 200 您已经可以浏览

delivery cost system。总共三问:
Q1:
add_driver(driver_id, usd_hourly_rate)
record_delivery(driver_id, start_time, end_time)
get_total_cost()
这个total cost算法很简单。主要是看你怎么建设object和float input的计算。
刚开始犯了个premature rounding的错误所以和test case有0.02的相差。fix之后就全pass了

Q2:
pay_up_to(pay_time)
get_total_cost_unpaid()
这一题的算法也很straightforward。
我之前的 DeliverySystem object已经有了TotalCost field,所以我就加了个TotalPaid 和 LastPaidTime field。跟面试官确认了pay_time is strictly increasing。所以每次call pay_up_to的时候我用LastPaidTime到pay_time这个range更新TotalPaid的amount。这样get_total_cost_unpaid()就是O(1)。

Q3:
maxSimultaneousDriverInPast24Hours(time)
这个可以把它想成是算counting max overlapping intervals的变种题
我用的是2 pointers的算法,然后用map来track unique driver和deliveries count。在地里之前没看到有mention,每个driver可以有多个同一个时间段的deliveries的。

建议之前写快点,给Q3留多点时间。LZ粗心在Q1的时候debug花了点时间,所以Q3写的有点赶,有一个小bug。不过还是在时间到之前fix了。最后只有5分钟问面试官问题。




求加米看面经~
Editor is loading...
Leave a Comment