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

刷题记录帖子

🔗
 楼主| Myron2017 2021-3-18 02:25:33 | 只看该作者
全局:
LeetCode 478 Generate Random Point in a Circle (Python)
两种方法,参数方程和拒绝采样。

参考资料:
(1) 参数方程
这个还真是大意了,需要主要使得 probability 一致而不是让 radius 一致。

https://stackoverflow.com/questi ... -a-circle-uniformly



(2) 拒绝采样

这个更加方便而且简单易实现,不像前面一个有坑。

https://maxming0.github.io/2021/ ... -Point-in-a-Circle/
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-20 09:32:26 | 只看该作者
全局:
841        Keys and Rooms

其实问题是图的遍历,DFS 就可以解决



  1. class Solution:
  2.     def canVisitAllRooms(self, rooms: List[List[int]]) -> bool:
  3.         visited = set()
  4.         
  5.         def DFS(room):
  6.             visited.add(room)
  7.             for key in rooms[room]:
  8.                 if key not in visited:
  9.                     DFS(key)
  10.         DFS(0)
  11.         return len(visited) == len(rooms)

复制代码
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-21 10:07:37 | 只看该作者
全局:
LeetCode 1396. Design Underground System (Python)

简单题,用两个 hashtable 解决

image.png (13.22 KB, 下载次数: 0)

image.png
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-21 19:07:42 | 只看该作者
全局:
869        Reordered Power of 2

枚举法
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-24 12:45:00 | 只看该作者
全局:
LeetCode 966. Vowel Spellchecker (Python)

通过 # 来代替元音字母简化中间状态,简化计算。

回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-24 12:46:28 | 只看该作者
全局:
LeetCode 923. 3Sum With Multiplicity (Python)

freq 的乘法原理

注意下 C_n^a 的计算公式 n!/(a! * (n-a)! )  == n * --- n-a+1 / a*---*1
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-25 03:16:13 | 只看该作者
全局:
LeetCode 870. Advantage Shuffle (Python)
记录下 B 的index-val list 来简化位置求解,贪心解决问题。


回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-25 11:41:56 | 只看该作者
全局:
376. Wiggle Subsequence

其实就是 DP 主要是考虑 up 和 down 这两个不同的 trends 的大小,要记住下一个长度的更新要从对面取初始值。

回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-26 16:58:22 | 只看该作者
全局:
916. Word Subsets

对于 B 求单独的 word 合集。

可以用 【0】 * 26 的数组统计出现次数。

  1. class Solution(object):
  2.     def wordSubsets(self, A, B):
  3.         def count(word):
  4.             ans = [0] * 26
  5.             for letter in word:
  6.                 ans[ord(letter) - ord('a')] += 1
  7.             return ans

  8.         bmax = [0] * 26
  9.         for b in B:
  10.             for i, c in enumerate(count(b)):
  11.                 bmax[i] = max(bmax[i], c)

  12.         ans = []
  13.         for a in A:
  14.             if all(x >= y for x, y in zip(count(a), bmax)):
  15.                 ans.append(a)
  16.         return ans
复制代码
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-3-27 16:46:51 | 只看该作者
全局:
LeetCode 647. Palindromic Substrings (Python)

DP 或者 Check possible centers of the Palindromic Substrings

回复

使用道具 举报

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

本版积分规则

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