lever

Not so Mobile UVA

半城伤御伤魂 提交于 2021-02-09 13:47:46
  Before being an ubiquous communications gadget, a mobile was just a structure made of strings and wires suspending colourfull things. This kind of mobile is usually found hanging over cradles of small babies.   The figure illustrates a simple mobile. It is just a wire, suspended by a string, with an object on each side. It can also be seen as a kind of lever with the fulcrum on the point where the string ties the wire. From the lever principle we know that to balance a simple mobile the product of the weight of the objects by their distance to the fulcrum must be equal. That is Wl × Dl = Wr

读《我对技术架构的理解与架构师角色的思考》

帅比萌擦擦* 提交于 2021-02-02 11:56:34
一、背景 最近读了一篇非常不错的文章 《我对技术架构的理解与架构师角色思考》 。 非常推荐大家也读读。 文章是一篇站在顶层俯瞰架构师角色非常醍醐灌顶的文章,读过后,对于文章中架构师的核心能力、职责、挑战有了更加清晰的认识,下面捡关键点简单详细展开。 二、读后感 文中作者对技术架构的理解分为 顶层设计、物理架构、应用架构 ,顶层设计十分重要,而有顶层设计意识才能开始思考这个问题,能做什么样的顶层设计,体现了这个架构师的Lever层次,顶层设计需要把“要做什么事要定义的非常清楚,要达到什么样的结果也要定义的非常清楚”,这样才能更好的指导他人开展工作,这是大规模系统建设的基础。物理架构主要是逻辑背后真实的结构,架构要想清楚将来的物理形态。应用架构个人认为也叫业务架构,做好业务边界划分,分工合作,以指导更多的人参与开展工作。 文中作者对架构师角色的讨论,首先提出 干掉架构师 ,同时更多的研发承担架构师,个人认为这是 精益思想 在研发的体现,研发首先是在一线的,同时是要解决具体的问题的,而架构本身也是要解决具体业务问题,因此研发应当延展具备抽象技术问题,用 架构思想解决实际的技术/业务问题的能力 。架构师角色必备需要具有 前瞻性 ,前瞻性首先体现在站在巨人肩上,学习前人的知识沉淀,这要求能够主动与前人沟通,了解他们“为什么要这么设计”,背后的背景和考量,同时要 接触真实的业务方,包括上游

6.4 数据结构---树的深度

我的未来我决定 提交于 2020-04-27 23:22:48
一、最大深度 1.二叉树的最大深度 leetcode104 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3    思路1: 深度优先搜索(递归) 终止条件: 如果二叉树为空,则深度为0; 递归体: 如果不为空,分别求左子树的深度和右子树的深度,取最大的再加1 def maxDepth(root): """ :type root: TreeNode :rtype: int """ if root == None: return 0 leftDepth = maxDepth(root.left) + 1 rightDepth = maxDepth(root.right) + 1 return leftDepth if leftDepth > rightDepth else rightDepth    思路2: 把树看做是图,用dfs求最长长度的路径 from collections import defaultdict def maxDepth2(nodes): #输入:nodes [3,9,20,null,null,15,7] #由节点列表构造图的邻接表 def