随笔分类 -  Leetcode-动态规划

Leetcode练习(Python):动态规划类:第221题:最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。
摘要:题目: 最大正方形:在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 思路: 思路来源于官方,自己的思路把题做的太难了,也做不对,直接借助一个矩阵来存放最大的面积,设计程序需要一定的小技巧。 程序: class Solution: def maximalSquar 阅读全文
posted @ 2020-05-13 21:56 桌子哥 阅读(1432) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):动态规划类:第139题:单词拆分:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。
摘要:题目: 单词拆分:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 思路: 动态规划常用思路。 程序: class Solution: de 阅读全文
posted @ 2020-05-13 20:43 桌子哥 阅读(703) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):动态规划类:第95题:不同的二叉搜索树 II:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。
摘要:题目: 不同的二叉搜索树 II:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。 思路: 遍历每一个节点,并且得到每个节点的左右子树,然后获得每个子树的样子就可以得出来了。 自己想了半天没法实现,参考了一下网上大神的程序,写的很好,很好理解。 程序: # Definition 阅读全文
posted @ 2020-05-13 18:56 桌子哥 阅读(300) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):动态规划类:第96题:不同的二叉搜索树:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?
摘要:题目: 不同的二叉搜索树:给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 思路: 找规律,使用动态规划模板。 程序: class Solution: def numTrees(self, n: int) -> int: if n <= 0: return 0 auxilia 阅读全文
posted @ 2020-05-13 17:17 桌子哥 阅读(389) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):动态规划类:第213题:打家劫舍 II:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
摘要:题目: 打家劫舍 II:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数 阅读全文
posted @ 2020-05-12 16:47 桌子哥 阅读(1010) 评论(0) 推荐(0) 编辑
Leetcode练习(Python):动态规划类:第198题:打家劫舍:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
摘要:题目: 打家劫舍:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额 阅读全文
posted @ 2020-05-12 15:08 桌子哥 阅读(544) 评论(0) 推荐(1) 编辑
Leetcode练习(Python):动态规划类:第70题:爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。
摘要:题目: 爬楼梯:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 思路: 斐波那契数列 程序: import functools class Solution: @functools.lru_cac 阅读全文
posted @ 2020-05-12 14:45 桌子哥 阅读(1349) 评论(0) 推荐(0) 编辑