随笔分类 -  算法

摘要:给定一个起始字符串和一个终止字符串,以及一个单词表,求是否可以将起始字符串每次改一个字符,直到改成终止字符串,且所有中间的修改过程表示的字符串都可以在单词表里找到。若存在,输出需要修改次数最少的所有更改方式。 输入是两个字符串,输出是一个二维字符串数组,表示每种字符串修改方式。 示例: 输入:beg 阅读全文
posted @ 2022-08-20 20:15 Vonos 阅读(49) 评论(0) 推荐(0) 编辑
摘要:字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> ... -> sk: 每一对相邻的单词只差一个字母。 对于 1 <= i <= k 时,每个 si 都在 wordList 中。注意, 阅读全文
posted @ 2022-08-19 16:44 Vonos 阅读(62) 评论(0) 推荐(0) 编辑
摘要:在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。) 现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。 返回必须翻转的 0 的最小数目。(可以保证答案至少是 1 。) 示例: 输入:A = [[1,1,1,1,1],[1,0,0,0,1],[1,0 阅读全文
posted @ 2022-08-16 22:53 Vonos 阅读(51) 评论(0) 推荐(0) 编辑
摘要:按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方 阅读全文
posted @ 2022-08-15 16:17 Vonos 阅读(75) 评论(0) 推荐(0) 编辑
摘要:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示 阅读全文
posted @ 2022-08-13 12:16 Vonos 阅读(57) 评论(0) 推荐(0) 编辑
摘要:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。可以按 任何顺序 返回答案。 示例: 输入:n = 4, k = 2 输出:[[2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 回溯法 排列回溯的是交换的位置,而组合回溯的是否把当前的数 阅读全文
posted @ 2022-08-10 11:33 Vonos 阅读(52) 评论(0) 推荐(0) 编辑
摘要:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。可以按任意顺序返回答案。 示例1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例2: 输入:nums = [1] 输出:[[1]] 阅读全文
posted @ 2022-08-09 16:53 Vonos 阅读(109) 评论(0) 推荐(0) 编辑
摘要:给定一个二维的非负整数矩阵,每个位置的值表示海拔高度。假设左边和上边是太平洋,右边和下边是大西洋,求从哪些位置向下流水,可以同时流到太平洋和大西洋。水只能从海拔高的位置流到海拔低或相同的位置。 示例: 输入: heights = [[1,2,2,3,5],[3,2,3,4,4],[2,4,5,3,1 阅读全文
posted @ 2022-08-07 16:11 Vonos 阅读(68) 评论(0) 推荐(0) 编辑
摘要:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 定义 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一个 n x n 的矩阵 isConnected ,其中 isCon 阅读全文
posted @ 2022-08-06 10:45 Vonos 阅读(56) 评论(0) 推荐(0) 编辑
摘要:DFS 二叉树的遍历 class Solution(object): def maxDepth_dfs(self, root): if not root: return 0 queue = [root] height = 0 while queue: currentSize = len(queue) 阅读全文
posted @ 2022-07-12 10:20 Vonos 阅读(19) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组prices,其中 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 注意:你不能同时参与多笔交易(你必须在再次购买前出 阅读全文
posted @ 2022-04-28 18:38 Vonos 阅读(97) 评论(0) 推荐(0) 编辑
摘要:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 阅读全文
posted @ 2022-04-27 19:05 Vonos 阅读(84) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '' 的正则表达式匹配。 '.' 匹配任意单个字符 '' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖整个字符串 s的,而不是部分字符串。 示例1: 输入:s = "aa", p = "a" 输出:false 解释:"a" 阅读全文
posted @ 2022-04-26 11:57 Vonos 阅读(156) 评论(0) 推荐(0) 编辑
摘要:最初记事本上只有一个字符 'A' 。你每次可以对这个记事本进行两种操作: Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。 Paste(粘贴):粘贴 上一次 复制的字符。 给你一个数字 n ,你需要使用最少的操作次数,在记事本上输出 恰好 n 个 'A' 。返回能够 阅读全文
posted @ 2022-04-26 11:51 Vonos 阅读(55) 评论(0) 推荐(0) 编辑
摘要:给你两个单词 word1 和 word2,请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例: 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse → ro 阅读全文
posted @ 2022-04-26 10:40 Vonos 阅读(148) 评论(0) 推荐(0) 编辑
摘要:给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例: 输入:coins = [1, 2, 5], amount 阅读全文
posted @ 2022-04-25 18:49 Vonos 阅读(90) 评论(0) 推荐(0) 编辑
摘要:给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例: 输入:strs = ["10", "0001", "111 阅读全文
posted @ 2022-04-25 18:24 Vonos 阅读(47) 评论(0) 推荐(0) 编辑
摘要:给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 本题等价于 0-1 背包问题,设所有数字和为 sum 阅读全文
posted @ 2022-04-25 18:04 Vonos 阅读(97) 评论(0) 推荐(0) 编辑
摘要:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "a 阅读全文
posted @ 2022-04-24 11:39 Vonos 阅读(134) 评论(0) 推荐(0) 编辑
摘要:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例1: 输入:nums = [10,9,2,5,3,7,101,18] 阅读全文
posted @ 2022-04-24 11:16 Vonos 阅读(185) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示