• 观察者模式

    简介观察者模式又称发布/订阅模式,用于观察某一个对象产生的变化,发布者无需维护订阅者,订阅者与发布者解耦。例如生活中,停车位是人们一直苦恼的事情,如果我们能够对车库车位进行实时观察,得到车位信息,是一大便捷的事情。 抽象抽象是为了更好...
  • leetcode780. 到达终点

    题目给定四个整数 sx , sy ,tx 和 ty,如果通过一系列的转换可以从起点 (sx, sy) 到达终点 (tx, ty),则返回 true,否则返回 false。 从点 (x, y) 可以转换到 (x, x+y)  或者 (x+y, y)...
  • leetcode70. 爬楼梯

    题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2输出:2 解释:有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输...
  • leetcode77. 组合

    题目给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按任何顺序返回答案。 示例 1: 输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2...
  • leetcode784. 字母大小写全排列

    题目给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1: 输入:s = “a1b2”输出:[“a1b2”, “a1B2”, ...
  • leetcode46. 全排列

    题目给定一个不含重复数字的数组 nums ,返回其所有可能的全排列 。你可以按任意顺序返回答案。 示例 1: 输入:nums = [1,2,3]输出:[ [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],...
  • leetcode994. 腐烂的橘子

    题目在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子周围 4 个方向上相邻的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜...
  • leetcode206. 反转链表

    题目给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2]输出:[2,1]示例 ...