随笔分类 -  动态规划

摘要:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18 阅读全文
posted @ 2022-08-04 18:08 小Aer 阅读(7) 评论(0) 推荐(0) 编辑
摘要:在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 示例 1: 输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1",& 阅读全文
posted @ 2022-07-21 17:15 小Aer 阅读(3) 评论(0) 推荐(0) 编辑
摘要:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 阅读全文
posted @ 2022-07-21 16:01 小Aer 阅读(6) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s = “leetcode”, wordDict = [“leet”, “code”] 输 阅读全文
posted @ 2022-07-19 15:00 小Aer 阅读(6) 评论(0) 推荐(0) 编辑
摘要:思路: 考虑 [] 的所有解 null 考虑 [ 1 ] 的所有解 1 考虑 [ 1 2 ] 的所有解 2 / 1 1 \ 2 考虑 [ 1 2 3 ] 的所有解 3 / 2 / 1 2 / \ 1 3 3 / 1 \ 2 1 \ 3 / 2 1 \ 2 \ 3 仔细分析,可以发现一个规律。首先我们 阅读全文
posted @ 2022-06-06 17:00 小Aer 阅读(2) 评论(0) 推荐(0) 编辑
摘要:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3 输出:5 示例 2: 输入:n = 1 输出:1 提示: 1 <= n <= 19 思路: 代码: class Solution: de 阅读全文
posted @ 2022-05-15 10:57 小Aer 阅读(2) 评论(0) 推荐(0) 编辑
摘要:代码: 我这里下标1表示1阶楼梯,为了下标的方便 输入: number表示楼梯总数,k表示一次爬多少阶楼梯 def jumpd(number, k): dp = [0]*(number+1) dp[0], dp[1] = 1, 1 for i in range(2, k): dp[i] = sum( 阅读全文
posted @ 2022-05-14 20:29 小Aer 阅读(28) 评论(0) 推荐(0) 编辑
摘要:一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> "1" 'B' -> "2" ... 'Z' -> "26" 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为: “AAJF” ,将消息分组为 (1 1 阅读全文
posted @ 2022-05-14 17:51 小Aer 阅读(4) 评论(0) 推荐(0) 编辑
摘要:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。 阅读全文
posted @ 2022-05-13 15:57 小Aer 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 阅读全文
posted @ 2022-05-06 09:59 小Aer 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m = 3, n = 7 输出:28 示例 2: 输入:m 阅读全文
posted @ 2022-05-05 11:06 小Aer 阅读(3) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 阅读全文
posted @ 2022-05-05 10:46 小Aer 阅读(5) 评论(0) 推荐(0) 编辑
摘要:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 来源:力扣(LeetCo 阅读全文
posted @ 2022-05-04 21:11 小Aer 阅读(3) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:s = "abc" 输出:3 解释 阅读全文
posted @ 2022-05-02 20:15 小Aer 阅读(3) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 代码: class Solution: def longestPalindrome(self 阅读全文
posted @ 2022-05-02 16:04 小Aer 阅读(3) 评论(0) 推荐(0) 编辑
摘要:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s = "bbbab" 输出:4 解释:一个可能的最长回文子序列为 "bbbb" 。 示例 2: 输入:s = "cbbd 阅读全文
posted @ 2022-05-02 15:56 小Aer 阅读(6) 评论(0) 推荐(0) 编辑
摘要:只可以使用增删改三种操作,求最少操作次数。 使用动态规划的思想 # 将一个字符串变成另外一个字符串的最少操作次数 def get(a, b): len1, len2 = len(a), len(b) dp = [[0]*(len2+1) for _ in range(len1+1)] for i i 阅读全文
posted @ 2022-04-29 10:28 小Aer 阅读(14) 评论(0) 推荐(0) 编辑

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