回复: 22
收起左侧

古狗新鲜VO挂经

匿名用户-9YCN0  2022-5-4 14:26:07
本楼:   👍  4
100%
0%
0   👎

2022(4-6月) 码农类General 硕士 全职@google - 猎头 - Onsite  | 😃 Positive 😣 HardFail | 在职跳槽

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

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

x
新鲜的挂经 T_T
第一轮bq

第二轮: https://leetcode.com/discuss/int ... ate-Total-Wait-Time
用正常的方式写完之后,follow up了一下以数学题的角度来说怎么解决, 最小公倍数之类的.

第三轮: 给一个计算机屏幕, 比如左上角是(0,0), 右下角是(1920, 1080).
这其中有一些窗口, 给的也是这些窗口的左上角和右下角坐标(都是长方形), 比如 A:[(10,10), (50,50), 3], 最后那个参数3 是指这个窗口的相对位置,
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
了一下思路, code没有完全写完.

LZ比较菜, 这一波面下来整个人崩溃了, 感觉好难, 欢迎大家留言讨论一下这些题的做法和思路T_T....尤其是第3,4题..

祝大家面试成功!!  加油加油!! 另求一些大米! 感激不尽!~~

评分

参与人数 11大米 +20 收起 理由
ilnlh + 1 给你点个赞!
frozentomato + 1 很有用的信息!
BubbIeTea + 1 赞一个
清道神君 + 10
shawnstruggle + 1 很有用的信息!

查看全部评分


上一篇:亚麻ng OA1+OA2+vo+timeline(求米)
下一篇:热带雨林转专业博士生AS实习过筋

本帖被以下淘专辑推荐:

danielff7 2022-5-19 21:21:26 | 显示全部楼层
本楼:   👍  3
100%
0%
0   👎
全局:   11
92%
8%
1
第三題想了一下, 應該算 LC 2158 的變種吧 , 2D 的 2158
2158 有一種解法是用 把每一個區間的點當成 key, 然後 end 的點存成 value, 這樣就可以避免重複
->
class Solution:
    def amountPainted(self, paint: List[List[int]]) -> List[int]:
        ans = []
        seen = {}
        for start, end in paint:
            cnt = 0
            while start < end:
                if start in seen:
                    start = seen[start]
                else:
                    seen[start] = end
                    cnt += 1
                    start += 1
            ans.append(cnt)
        return ans

所以應該只要把每一個 row 當成一個 2158 的 1D array,  然後 sort window array, 讓 size 數字越大的越先處理, 這樣應該可以更簡化一些 ?
def findAllSquare(self, squares: list, windows: List[List[int]]):
    # each item in squares is like [(startx, starty), (endx, endy), size]
    record = defaultdict(int)
    squares.sort(key=lambda x: -x[2])
    counter = defaultdict(int)
    for i, s in enumerate(squares):
        endy = s[1][1]
        j = s[0][1]
        for i in range(s[0][0], s[1][0]+1):
            while j <= s[1][1]:
                if (i, j) in record: # 已經有更大的size 直接跳到 結束的點
                    j = record[(i,j)]
                else:
                    windows[i][j] = s[2] # 還沒有更大的size, record當前的size
                    record[(i,j)] = endy+1
    for i in range(len(windows)):
        for j in range(len(windows[0])):
            counter[windows[i][j]] += 1
    return counter
回复

使用道具 举报

pususu2001 2022-5-4 23:46:47 | 显示全部楼层
本楼:   👍  3
100%
0%
0   👎
全局:   156
96%
4%
6
本帖最后由 pususu2001 于 2022-5-4 12:02 编辑

提供一个第三题的思路,不知道有没有bug。

因为计算机屏幕的总面积是固定的(1920*1080), 所以可以直接iterate所有点然后找每个点所在的window。对于每一个y来说,windows相当于一个list of 1d intervals。所以找window可以sort windows by x然后用two pointer。Priority queue用来优先选level更高的window。时间复杂度O(1920*1080*log(n)).


def calculateAreas(windows):
    windows.sort(key=lambda window: window[0][0])
    areas = [0] * len(windows)
    for y in range(1080):
        x, i = 0, 0
        pq = []
        while x < 1920 and (pq or i < len(windows)):
            while i < len(windows) and windows[0][0] <= x:
                heapq.heappush(pq, (-windows\[i\][2], windows\[i\], i))
                i += 1
            while pq and not contains(pq[0][1], x, y):
                heapq.heappop(pq)
            if pq:
                areas[pq[0][2]] += 1
            x += 1
    return areas

def contains(window, x, y):
    '''
    Return True if window contains the coordinate (x, y)
    '''
    leftBot, topRight, _ = window
    return leftBot[0] <= x <= topRight[0] and leftBot[1] <= y <= topRight[1]

评分

参与人数 2大米 +6 收起 理由
kilafeng + 1 赞一个
清道神君 + 5

查看全部评分

回复

使用道具 举报

地里匿名用户
匿名用户-9YCN0  2022-5-5 09:37:24
本楼:   👍  2
100%
0%
0   👎
把题再发一遍,可能有些小伙伴没米看不了..不太清楚我没设置等级呀..

第一轮bq
第二轮: https://link.1point3acres.com/?u ... ate-Total-Wait-Time
用正常的方式写完之后,follow up了一下以数学题的角度来说怎么解决, 最小公倍数之类的.
第三轮: 给一个计算机屏幕, 比如左上角是(0,0), 右下角是(1920, 1080).
这其中有一些窗口, 给的也是这些窗口的左上角和右下角坐标(都是长方形), 比如 A:[(10,10), (50,50), 3], 最后那个参数3 是指这个窗口的相对位置, 也就是说数字越大代表这个窗口在更靠前的位置. 比如 B:[(25,25), (100,100), 4]. B这个长方形盖在A的上方.
求每一个window露出来的面积是多少.
第四轮: 类似蠡口 叁亿伍, 但是反过来找, count the smaller element before self.
第五轮: 类似蠡口 儿医义乌, 但是输入输出的格式全需要我自己问, 这个美国大哥给我的感觉不是很好,问三句回一句. 纠结了比较久的输入输出格式, 最后只是讲了一下思路, code没有完全写完.

评分

参与人数 1大米 +1 收起 理由
sylvanotes + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

地里匿名用户
匿名用户-KJE2O  2022-5-4 15:05:55
本楼:   👍  0
0%
0%
0   👎
确实感觉这波好难啊,看来狗家coding确实看运气。。。这个就感觉很简单 https://www.1point3acres.com/bbs/thread-891486-1-1.html
请问lz你走新的hiring process了吗?是组里面人面的你吗? 谢谢
回复

使用道具 举报

SSGEZREAL 2022-5-4 15:06:06 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   892
87%
13%
137
第三题应该是从index 最高的 长方形开始找吧(clarify index 是唯一的吗 like 有可能多个长方形有同一个index ) brute force 的应该就是 maintain 2d[][] array 然后 对每个window 从左上角一直搜索到右下角 找没有被cover的点 如果有大神能用merge interval能给个解法那就太感谢了 二维的interval merge有点难想
第四题看了下原题的解法是segment tree 难道真的要现场手写segment tree 吗。。。
顺便问一句楼主target level是多少? 这面试有点难
回复

使用道具 举报

地里匿名用户
匿名用户-XR8UH  2022-5-4 22:56:43 来自APP
本楼:   👍  1
100%
0%
0   👎
楼主面完recruiter直接通知挂了吗?没有过hc或者尝试先match再过hc吗?谢谢
回复

使用道具 举报

dacheng0413 2022-5-4 23:09:34 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   17801
99%
1%
250
大佬哪天面的。。
回复

使用道具 举报

地里匿名用户
匿名用户-9YCN0  2022-5-5 01:24:27
本楼:   👍  0
0%
0%
0   👎
匿名者 发表于 2022-5-4 00:05
确实感觉这波好难啊,看来狗家coding确实看运气。。。这个就感觉很简单 https://www.1point3acres.com/bbs/ ...

不是新的process, 还是打散了随机找人面的
回复

使用道具 举报

地里匿名用户
匿名用户-9YCN0  2022-5-5 01:26:01
本楼:   👍  0
0%
0%
0   👎
SSGEZREAL 发表于 2022-5-4 00:06
第三题应该是从index 最高的 长方形开始找吧(clarify index 是唯一的吗 like 有可能多个长方形有同一个ind ...

第三题上来就说了brute force, 给我的答复是万一有很多长方形呢? 让我优化T_T

第四题是segment tree..就得写出来吧大概

这个是L4
回复

使用道具 举报

rekoko555 2022-5-5 02:23:03 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   421
95%
5%
21
太难了,只能加个米安慰下
回复

使用道具 举报

SSGEZREAL 2022-5-5 04:33:37 来自APP | 显示全部楼层
本楼:   👍  1
100%
0%
0   👎
全局:   892
87%
13%
137
匿名用户 发表于 2022-05-04 10:26:01
第三题上来就说了brute force, 给我的答复是万一有很多长方形呢? 让我优化T_T

第四题是segment tree..就得写出来吧大概
继续第三题 我想了一下其实这就是个二维版的painting area every day 对于某一行或者某一列来说用maintain jump line 就可以了? 比如对一个window 是(25,25) (50,50) 那么标记它中间所有的点直接跳转到51  这样应该可以?
现场写segment tree 也太残暴了 楼主是hc通知挂了吗
回复

使用道具 举报

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

本版积分规则

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