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

刷题记录帖子

🔗
 楼主| Myron2017 2021-12-7 21:55:11 | 只看该作者
全局:
1290        Convert Binary Number in a Linked List to Integer        Easy
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-10 00:50:36 | 只看该作者
全局:
1306        Jump Game III        Medium        4        DFS / BFS

经典题目,全文背诵
  1. """

  2. BFS

  3. """

  4. class Solution_BFS:
  5.     def canReach(self, arr: List[int], start: int) -> bool:
  6.         n = len(arr)
  7.         q = [start]

  8.         while q:
  9.             node = q.pop(0)
  10.             # check if reach zero
  11.             if arr[node] == 0:
  12.                 return True
  13.             if arr[node] < 0:
  14.                 continue

  15.             # check available next steps
  16.             for i in [node + arr[node], node - arr[node]]:
  17.                 if 0 <= i < n:
  18.                     q.append(i)

  19.             # mark as visited
  20.             arr[node] = -arr[node]

  21.         return False
  22.       
  23. """

  24. DFS

  25. """

  26. class Solution_DFS:
  27.     def canReach(self, arr: List[int], start: int) -> bool:
  28.         if 0 <= start < len(arr) and arr[start] >= 0:
  29.             if arr[start] == 0:
  30.                 return True

  31.             arr[start] = -arr[start]
  32.             return self.canReach(arr, start+arr[start]) or self.canReach(arr, start-arr[start])

  33.         return False
复制代码
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-10 02:16:39 | 只看该作者
全局:
563        Binary Tree Tilt        Medium        4        post-order DFS

"""

post-order DFS

"""

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def findTilt(self, root: Optional[TreeNode]) -> int:
        self.ans = 0
        
        def totalSum(node):
            if not node: return 0
            
            left_sum = totalSum(node.left)
            right_sum = totalSum(node.right)
            tilt = abs(right_sum - left_sum)
            self.ans += tilt
            
            return left_sum + right_sum + node.val
        totalSum(root)
        return self.ans
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-14 02:12:13 | 只看该作者
全局:
1446. Consecutive Characters

674. Longest Continuous Increasing Subsequence
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-14 02:23:26 | 只看该作者
全局:
2103        Rings and Rods        Easy
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-15 01:08:46 | 只看该作者
全局:
938. Range Sum of BST

还是要仔细审题的,BST 自身是有 order 的
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-19 08:00:33 | 只看该作者
全局:
902. Numbers At Most N Given Digit Set

题目并不难,比 n 位数小的情况很容易计算,但是与 n 位数一样的时候情况就复杂了,这个时候需要考虑的是,首位是不是一样,同时还需要一路比较到最后一个情况。

如何高效简洁地写出code,很考验功力。参考了花花的解答,https://zxi.mytechroad.com/blog/ ... -n-given-digit-set/

回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-20 00:38:14 | 只看该作者
全局:
394         Decode String        Medium        4        Stack + Reversed Push
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-20 09:08:52 | 只看该作者
全局:
1200        Minimum Absolute Difference        Easy        1       
回复

使用道具 举报

🔗
 楼主| Myron2017 2021-12-20 09:24:51 | 只看该作者
全局:
2108. Find First Palindromic String in the Array
2109. Adding Spaces to a String
2110. Number of Smooth Descent Periods of a Stock
回复

使用道具 举报

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

本版积分规则

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