• 钥匙和房间


    题目描述

    有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N - 1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0, 1,…,N - 1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。

    最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间返回 true,否则返回 false。

    示例 1:

    输入: [[1], [2], [3], []]
    输出: true
    解释:
    我们从 0 号房间开始,拿到钥匙 1。
    之后我们去 1 号房间,拿到钥匙 2。
    然后我们去 2 号房间,拿到钥匙 3。
    最后我们去了 3 号房间。
    由于我们能够进入每个房间,我们返回 true。

    示例 2:

    输入:[[1, 3], [3, 0, 1], [2], [0]]
    输出:false
    解释:我们不能进入 2 号房间。

    提示:

    • 1 <= rooms.length <= 1000
    • 0 <= rooms[i].length <= 1000
    • 所有房间中的钥匙数量总计不超过 3000。
  • 重新安排行程


    题目描述

    给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。

    提示:

    • 如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前。
    • 所有的机场都用三个大写字母表示(机场代码)。
    • 假定所有机票至少存在一种合理的行程。
    • 所有的机票必须都用一次且只能用一次。

    示例 1:

    输入:[[“MUC”, “LHR”], [“JFK”, “MUC”], [“SFO”, “SJC”], [“LHR”, “SFO”]]
    输出:[“JFK”, “MUC”, “LHR”, “SFO”, “SJC”]

    示例 2:

    输入:[[“JFK”, “SFO”],[“JFK”, “ATL”],[“SFO”, “ATL”],[“ATL”, “JFK”],[“ATL”, “SFO”]]
    输出:[“JFK”, “ATL”, “JFK”, “SFO”, “ATL”, “SFO”]
    解释:另一种有效的行程是 [“JFK”, “SFO”, “ATL”, “JFK”, “ATL”, “SFO”]。但是它自然排序更大更靠后。

  • 数字范围按位与


    题目描述

    给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。

    示例 1:

    输入: [5, 7]
    输出: 4

    示例 2:

    输入: [0, 1]
    输出: 0

  • 将二叉搜索树变平衡


    题目描述

    给你一棵二叉搜索树,请你返回一棵平衡后的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是平衡的。如果有多种构造方法,请你返回任意一种。

    示例:

    输入:root = [1, null, 2, null, 3, null, 4, null, null]
    输出:[2, 1, 3, null, null, null, 4]
    解释:这不是唯一的正确答案,[3, 1, 4, null, 2, null, null] 也是一个可行的构造方案。

    提示:

    • 树节点的数目在 1 到 10^4 之间。
    • 树节点的值互不相同,且在 1 到 10^5 之间。
  • 平衡二叉树


    题目描述

    给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。

    示例 1:

    1
    2
    3
    4
    5
    6
    7
    给定二叉树 [3, 9, 20, null, null, 15, 7]
    3
    / \
    9 20
    / \
    15 7
    返回 true 。

    示例 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    给定二叉树 [1, 2, 2, 3, 3, null, null, 4, 4]
    1
    / \
    2 2
    / \
    3 3
    / \
    4 4
    返回 false 。
  • 区间列表的交集


    题目描述

    给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且已经排序。返回这两个区间列表的交集。
    (形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。)

    示例:

    输入:A = [[0, 2], [5, 10], [13, 23], [24, 25]], B = [[1, 5], [8, 12], [15, 24], [25, 26]]
    输出:[[1, 2], [5, 5], [8, 10], [15, 23], [24, 24], [25, 25]]

    提示:

    • 0 <= A.length < 1000
    • 0 <= B.length < 1000
    • 0 <= A[i].start, A[i].end, B[i].start, B[i].end < 10^9
  • 字符串相乘


    题目描述

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

    示例 1:

    输入: num1 = “2”, num2 = “3”
    输出: “6”

    示例 2:

    输入: num1 = “123”, num2 = “456”
    输出: “56088”

    说明:

    1. num1 和 num2 的长度小于 110。
    2. num1 和 num2 只包含数字 0-9。
    3. num1 和 num2 均不以零开头,除非是数字 0 本身。
    4. 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。
  • 被围绕的区域


    题目描述

    给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    输入:

    X X X X
    X O O X
    X X O X
    X O X X

    运行你的函数后,矩阵变为:

    X X X X
    X X X X
    X X X X
    X O X X

    解释: 被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为 ‘X’。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。

  • 计数二进制子串


    题目描述

    给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。

    示例 1:

    输入: “00110011”
    输出: 6
    解释: 有 6 个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。
    请注意,一些重复出现的子串要计算它们出现的次数。
    另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。

    示例 2:

    输入: “10101”
    输出: 4
    解释: 有4个子串:“10”,“01”,“10”,“01”,它们具有相同数量的连续1和0。

    注意:

    s.length 在1到50,000之间。
    s 只包含“0”或“1”字符。

  • Hexo 博客和 NexT 主题版本升级


    前言

    使用 Hexo 搭建博客也有4年之久,也是一直使用 NexT 主题,NexT 的简洁大方美观,特别符合我的审美。最近 Hexo 更新到 5.0.0 版本了,也是临时起意,想要更新下 Hexo 的版本,同时也一起更新下 NexT 主题,毕竟从4年前开始使用后,就再也没有升级过这两个的版本了。经常看到很多的同学都升级到新版本的 NexT 主题,界面展示和功能都有较大提升。NexT 主题不仅由之前的 5.1.x 更新至 7.x,主仓库也从 iissnan 名下迁移至 theme-next 组织。