随笔分类 - Leetcode—搜索/回溯
摘要:LeetCode 31 下一个排列 问题描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。
阅读全文
摘要:LeetCode 面试题4 二维数组中的查找 问题描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 递归 矩阵反对角线 (右上到左下) 上的元素将矩阵中
阅读全文
摘要:LeetCode 463 岛屿的周长 问题描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。 网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。 岛屿中没有“湖”(“湖”
阅读全文
摘要:LeetCode 129 求根到叶子节点数字之和 问题描述: 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。
阅读全文
摘要:LeetCode 113 路经总和II 问题描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 DFS+回溯 执行用时:1 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:39.6 MB, 在所有 Java 提交中击败了10.71%的用
阅读全文
摘要:LeetCode 78 子集 问题描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 深度优先遍历 + 回溯 执行用时:1 ms, 在所有 Java 提交中击败了99.39%的用户 内存消耗:39 MB, 在所有 Java 提交中击败了
阅读全文
摘要:LeetCode 79单词搜索 问题描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 执行用时:13 ms, 在所有 Java 提交中击败了
阅读全文
摘要:LeetCode 77 组合 问题描述: 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 **组合:**对于任意两个数,其组合形式只有一种 执行用时:1 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:41.2 MB, 在所有 Java 提交中击
阅读全文
摘要:LeetCode 95 不同的二叉搜索树II 问题描述: 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 执行用时:1 ms, 在所有 Java 提交中击败了99.97%的用户 内存消耗:40.4 MB, 在所有 Java 提交中击败了49.34%的用户 class S
阅读全文
摘要:LeetCode 841 钥匙与房间 问题描述: 有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙rooms[i][j]由[0,1,..
阅读全文
摘要:Leetcode 17 电话号码的字母组合 问题描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 2: "abc" 3: "def" 4: "ghi" 5: "jkl" 6: "mno" 7: "pqr
阅读全文