![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode-动态规划
leetcode中动态规划相关的算法题
我是一名程序媛
这个作者很懒,什么都没留下…
展开
-
LeetCode 279 完全平方数
题目描述给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。题解动态规划代码class Solution {public: int numSquares(int n) { if (n==1) return 1; vector<int> vec(n+1,n); vec[0]=0;vec[1]=1; for (in.原创 2021-01-14 20:51:25 · 164 阅读 · 0 评论 -
LeetCode 221 最大正方形
题目描述在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。题解动态规划代码class Solution {public: int maximalSquare(vector<vector<char>>& matrix) { int m=matrix.size(); if (!m) return {}; int n=matrix[0].size();.原创 2021-01-13 18:51:23 · 108 阅读 · 0 评论 -
LeetCode 542 01 矩阵
题目描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。题解广度优先搜索代码class Solution {public: vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) { int m=matrix.size(); if (!m) return {}; .原创 2021-01-13 18:49:31 · 117 阅读 · 0 评论 -
LeetCode 64 最小路径和
题目描述给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。题解动态规划代码class Solution {public: int minPathSum(vector<vector<int>>& grid) { int m=grid.size(); if (!m) return 0; in.原创 2021-01-13 18:43:24 · 111 阅读 · 0 评论 -
LeetCode 413 等差数列划分
题目描述如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], ..., .原创 2021-01-13 18:38:17 · 185 阅读 · 0 评论 -
LeetCode 198 打家劫舍
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。题解每个房间只有偷或者不偷两种选择。代码class Solution {public: int rob(vector<int>& nums) { .原创 2021-01-12 11:35:56 · 138 阅读 · 0 评论 -
LeetCode 70 爬楼梯
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。题解动态规划,迭代求解即可。代码class Solution {public: int climbStairs(int n) { if (n==1||n==2) return n; int a=1,b=2; for (int i=0;i<n-2;i++){ .原创 2021-01-12 11:29:20 · 81 阅读 · 0 评论