<
ARTS 第六周
>
上一篇

ARTS 第五周
下一篇

ARTS 第七周
Toc
ARTS Week-6

Algorithm

5050. 从二叉搜索树到更大和树

给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

提醒一下,二叉搜索树满足下列约束条件:

示例:

img1

    输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
    输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

提示:

  1. 树中的节点数介于 1100 之间。
  2. 每个节点的值介于 0100 之间。
  3. 给定的树为二叉搜索树

解题思路:

img2

代码实现:


# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def bstToGst(self, root: TreeNode) -> TreeNode:
        self._bstToGst(root)
        return root
    
    def _bstToGst(self, root, val=0):
        if not root.left and not root.right:
            val = root.val + val
            root.val = val
            return val
        
        if root.right:
            val = root.val + self._bstToGst(root.right, val)
            root.val = val
        
        if root.left:
            val = self._bstToGst(root.left, root.val)

        return val

Review

《97 Things Every Programmer Should Know》 - Ask, “What Would the User Do?” (You Are Not the User)

Tip

分享一个收费的手写笔记 App,GoodNotes 5,虽然需要 iPad 和 iPencil。

但是要是有条件强烈建议购买,无论是用来看书,做笔记,写草稿都是神器,个人体验非常棒。

附上一张刷题时的草稿:

img3

Share

端正学习态度 - 陈浩

学习是一件“逆人性”的事,就像锻炼身体一样,需要人持续付出,会让人感到痛苦,并随时想找理由放弃。

大部分人都认为自己爱学习,但是:

他们都是只有意识没有行动,他们是动力不足的人。 他们都不知道自己该学什么,他们缺乏方向和目标。 他们都不具备自主学习的能力,没有正确的方法和技能。 更要命的是,他们缺乏实践和坚持。

所以,学习不是努力读更多的书,盲目追求阅读的速度和数量,这会让人产生低层次的勤奋和成长的感觉,这只是在使蛮力。要思辨,要践行,要总结和归纳,否则,你只是在机械地重复某件事,而不会有质的成长的。

真正的学习,从来都不是很轻松的,而是那种你知道得越多,你的问题就会越多,你的问题越多,你就会思考得越多,你思考得越多,你就会越觉得自己知道得少,于是你就会想要了解更多。如此循环,是这么一种螺旋上升上下求索的状态。

Top
Foot