• 最小路径和


    题目描述

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

    说明: 每次只能向下或者向右移动一步。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    输入:
    [
      [1,3,1],
    [1,5,1],
    [4,2,1]
    ]
    输出: 7
    解释: 因为路径 1→3→1→1→1 的总和最小。
  • 反转链表


    题目描述

    反转一个单链表。

    示例:

    输入: 1->2->3->4->5->NULL
    输出: 5->4->3->2->1->NULL

    进阶:

    你可以迭代或递归地反转链表。你能否用两种方法解决这道题?

  • 验证二叉搜索树


    题目描述

    给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:

    • 节点的左子树只包含小于当前节点的数。
    • 节点的右子树只包含大于当前节点的数。
    • 所有左子树和右子树自身必须也是二叉搜索树。

    示例 1:

    1
    2
    3
    4
    5
    输入:
    2
    / \
    1 3
    输出: true

    示例 2:

    1
    2
    3
    4
    5
    6
    7
    8
    输入:
    5
    / \
    1 4
      / \
      3 6
    输出: false
    解释: 输入为: [5, 1, 4, null, null, 3, 6]。根节点的值为 5 ,但是其右子节点值为 4 。
  • 二叉搜索树的第k大节点


    题目描述

    给定一棵二叉搜索树,请找出其中第k大的节点。

    示例 1:

    1
    2
    3
    4
    5
    6
    7
    输入: root = [3, 1, 4, null, 2], k = 1
    3
    / \
    1 4
    \
      2
    输出: 4

    示例 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    输入: root = [5, 3, 6, 2, 4, null, null, 1], k = 3
    5
    / \
    3 6
    / \
    2 4
    /
    1
    输出: 4

    限制:
    1 ≤ k ≤ 二叉搜索树元素个数

  • 三角形最小路径和


    题目描述

    给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点,在这里指的是下标与上一层结点下标相同或者等于上一层结点下标 + 1 的两个结点。

    例如,给定三角形:

    1
    2
    3
    4
    5
    6
    [
    [2],
    [3, 4],
    [6, 5, 7],
    [4, 1, 8, 3]
    ]

    自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。

  • 恢复空格


    题目描述

    哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子”I reset the computer. It still didn’t boot!”已经变成了”iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。

    示例:

    输入:
    dictionary = [“looked”, “just”, “like”, “her”, “brother”]
    sentence = “jesslookedjustliketimherbrother”
    输出: 7
    解释: 断句后为”jess looked just like tim her brother”,共7个未识别字符。

    提示:

    • 0 <= len(sentence) <= 1000
    • dictionary中总字符数不超过 150000。
    • 你可以认为dictionary和sentence中只包含小写字母。
  • 跳水板


    题目描述

    你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。返回的长度需要从小到大排列。

    示例 1:

    输入:
    shorter = 1
    longer = 2
    k = 3
    输出: [3, 4, 5, 6]
    解释:可以使用 3 次 shorter,得到结果 3;使用 2 次 shorter 和 1 次 longer,得到结果 4 。以此类推,得到最终结果。

    提示:

    • 0 < shorter <= longer
    • 0 <= k <= 100000
  • 路径总和 II


    题目描述

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
    说明: 叶子节点是指没有子节点的节点。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    给定如下二叉树,以及目标和 sum = 22,
    5
    / \
    4 8
    / / \
    11 13 4
    / \ / \
    7 2 5 1
    返回:
    [
    [5,4,11,2],
    [5,8,4,5]
    ]
  • 路经总和


    题目描述

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
    说明: 叶子节点是指没有子节点的节点。

    示例: 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    给定如下二叉树,以及目标和 sum = 22
    5
    / \
    4 8
    / / \
    11 13 4
    / \ \
    7 2 1
    返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。
  • 调试JS代码

    记录下近期对JS代码的调试过程 性能分析启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面 目前主要使用的功能有: Performance. 性能评估,比如我想看下页面刷新的性能瓶颈所在,先点击 ...