Re: [闲聊] 每日LeetCode

楼主: pandix (面包屌)   2022-11-14 13:10:49
※ 引述《Rushia (みけねこ的鼻屎)》之铭言:
: 947. Most Stones Removed with Same Row or Column
: 给予你一个阵列表示在2D空间里面放置石头的座标,若一个石头的上下左右存在一个
: 石头(重叠)我们可以把该石头移除,求出最多可以移除多少个石头。
: Example:
: Input: stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]
: Output: 5
龙大抓到了一群边板仔,准备S了他们,但也不想S掉全部
因为龙大是个M,喜欢自搜看自己被黑,并且留一点边板仔尬黑还有助提升大公声望
龙大每轮会挑两个在同一行/列的人并S掉其中一个直到挑不出来
请帮龙大找出最多能S掉几个边板仔
思路:
1.上一篇的做法已经很漂亮了 就是把 col+10000 以错开 row 的 index
lee215提供了一个把 ~col 当 index 的写法 就是对 col 的每个 bit 取反
~col 的范围会是 -1~-10001 也是能和 row 错开
最后就变成
def removeStones(self, points):
uf = {}
def find(x):
if x != uf.setdefault(x, x):
uf[x] = find(uf[x])
return uf[x]
for i, j in points:
uf[find(i)] = find(~j)
return len(points) - len({find(x) for x in uf})
lee803...真的浩强...
作者: Rushia (みけねこ的鼻屎)   2022-11-14 13:13:00
靠北
作者: iLeyaSin365 (伊雷雅鑫)   2022-11-14 13:26:00
感觉leetcode 干的事就是有思考的翻译练习
作者: itoumashiro (佩可咪口爱的结晶)   2022-11-14 15:26:00
笑死

Links booklink

Contact Us: admin [ a t ] ucptt.com