美文网首页
每周 ARTS 第 33 期

每周 ARTS 第 33 期

作者: 落英坠露 | 来源:发表于2020-06-14 23:13 被阅读0次

1. Algorithm

路径总和 III(简单)

描述:

给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。
路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。

示例:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

      10
     /  \
    5   -3
   / \    \
  3   2   11
 / \   \
3  -2   1

返回 3。和等于 8 的路径有:

1.  5 -> 3
2.  5 -> 2 -> 1
3.  -3 -> 11

思路:

两次递归。pathSum 返回以当前节点为根的树中,路径和为目标值的路径总数;count 返回以当前节点为根的树中,有多少以该节点为开头,路径和为目标值的路径总数。

class Sulution {
    public int pathSum(TreeNode root, int sum) {
        if (root == null) {
            return 0;
        }
        return count(root, sum) + pathSum(root.left, sum) + pathSum(root.right, sum);
    }

    private int count(TreeNode root, int sum) {
        if (root == null) {
            return 0;
        }
        int count = 0;
        if (sum == root.val) {
            count += 1;
        }
        int diff = sum - root.val;
        return count + count(root.left, diff) + count(root.right, diff);
    }
}

2. Review

The most important skill a programmer can learn 程序员该学到的最重要技能

知道什么时候不写代码,该拒绝的需求就坚定拒绝。代码增多会带来很多问题,面对各种需求,我们不该被动接受,不合理的需求就不做。

3. Tip

程序员不喜欢做重复的事情,写脚本成了偷懒的方法,shell 是最常用的脚本,可完成许多自动化的操作。Bash脚本教程 是不错的参考资料。

4. Share

caoz 的职场系列 写得很受用,职场人可以多读读。

相关文章

  • 每周 ARTS 第 33 期

    1. Algorithm 路径总和 III(简单) 描述: 给定一个二叉树,它的每个结点都存放着一个整数值。找出路...

  • 每周 ARTS 第 19 期

    1. Algorithm 46. 全排列(中等) 描述: 给定一个没有重复数字的序列,返回其所有可能的全排列。 示...

  • 每周 ARTS 第 14 期

    1. Algorithm 78. 子集(中等) 描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可...

  • 每周 ARTS 第 17 期

    1. Algorithm 1114. 按序打印(简单) 描述: 三个不同的线程将会共用一个 Foo 实例,它们会被...

  • 每周 ARTS 第 21 期

    1. Algorithm 24. 两两交换链表中的节点(中等) 描述: 给定一个链表,两两交换其中相邻的节点,并返...

  • 每周 ARTS 第 20 期

    1. Algorithm 1116. 打印零与奇偶数(中等) 描述: 有这样一个类 ZeroEvenOdd,相同的...

  • 每周 ARTS 第 18 期

    1. Algorithm 110. 平衡二叉树(简单) 描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。本题...

  • 每周 ARTS 第 23 期

    1. Algorithm 62. 不同路径(中等) 描述: 一个机器人位于一个 m x n 网格的左上角 (起始点...

  • 每周 ARTS 第 24 期

    1. Algorithm 22. 生成括号(中等) 描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能...

  • 每周 ARTS 第 22 期

    1. Algorithm 15. 三数之和(中等) 描述: 给定一个包含 n 个整数的数组 nums,判断 num...

网友评论

      本文标题:每周 ARTS 第 33 期

      本文链接:https://www.haomeiwen.com/subject/yodqxktx.html