E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LeetCode-动态规划
动态规划
Day06(完全背包)
完全背包有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。同样leetcode上没有纯完全背包问题,都是需要完全背包的各种应用,需要转化成完全背包问题,所以我这里还是以纯完全背包问题进行讲解理论
Punk Boy
·
2024-01-15 21:25
动态规划
算法
怎么在蓝桥杯多拿点分
难度比较大的是
动态规划
。严格按要求输出,不要画蛇添足地打印类似:“请您输入…”的多余内容。能用到的函数,比如sort、next_permutation等,STL同理。
你小汁完了
·
2024-01-15 20:11
蓝桥杯_搜索算法(DFS和BFS)
蓝桥杯B组省赛水题1(3分)2(5分)4(11分)19分DFS/爆破3(9分)5(15分)7(21分)45分冒泡(加法乘法)6(17分)17分取余(饮料换购)8(13分)13分矩阵9(25分)25分DP(
动态规划
你小汁完了
·
2024-01-15 20:10
蓝桥杯
c语言
c++
Leetcode72-编辑距离,DP经典回味,深入分析
20201_022201canvas.png这是一道相当经典的
动态规划
问题,最初做这道题的时候,还是在大学,当时见到这题一头雾水,看了别人的解析还是不太理解,而且看状态方程时,仅仅是看到了状态的方程的“
holymanu
·
2024-01-15 20:03
Day 48
动态规划
9
198.打家劫舍1代码随想录1.思路本体是非常简单的
动态规划
问题,dp[i]就代表0-i这些家可以抢劫到的最大金额,分两种情况进行讨论。一个是抢当前的不抢之前的,一个是不抢当前的。
韩纪初
·
2024-01-15 20:49
动态规划
算法
【蓝桥杯/
动态规划
】数的计算
数的计算题目描述输入一个自然数n(n≤1000)n\(n\leq1000)n(n≤1000),我们对此自然数按照如下方法进行处理:不作任何处理;在它的左边加上一个自然数,但该自然数不能超过原数的一半;加上数后,继续按此规则进行处理,直到不能再加自然数为止。问总共可以产生多少个数。输入描述输入一个正整数nnn。输出描述输出一个整数,表示答案。输入输出样例示例1输入6copy输出6运行限制最大运行时间
JaredYe
·
2024-01-15 17:25
蓝桥杯
动态规划
java
leetcode练习——
动态规划
(跳跃游戏)
给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。官方解法:https://leetcode-cn.com/problems/jump-game/solution/tiao-yue-you-xi-by-leetcode-solution/解法一:贪心算法(76ms/15.3MB)classSolution:d
StriveQueen
·
2024-01-15 17:38
leetcode
动态规划
贪心算法
【每日易题】Leetcode上Hard难度的
动态规划
题目——地下城游戏的实现
君兮_的个人主页即使走的再远,也勿忘启程时的初心C/C++游戏开发Hello,米娜桑们,这里是君兮_,博主最近一直在钻研
动态规划
算法,最近在Leetcode上刷题的时候遇到一个Hard难度的
动态规划
题,
君兮_
·
2024-01-15 17:02
每日易题
leetcode
动态规划
游戏
算法
c++
打家劫舍(java
动态规划
)
Problem:198.打家劫舍文章目录题目描述思路解题方法复杂度Code题目描述思路1.构建多阶段决策模型:n个房屋对应n个阶段,每一个阶段决定一个房间是偷还是不偷,两种决策:偷、不偷2.定义状态:不能记录每个阶段决策完之后,小偷可偷的最大金额,需要记录不同决策对应的最大金额,也就是:这个房屋偷-对应的最大金额;这个房屋不偷-对应的最大金额。int[n][2]记录每个阶段的状态,dp[i][0]
LNsupermali
·
2024-01-15 16:22
力扣题目
动态规划
leetcode
java
leetcode-
二叉树的最大深度
104.二叉树的最大深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defmaxDepth(self,root:Optional[TreeNod
独孤--蝴蝶
·
2024-01-15 16:49
leetcode
leetcode-
删除排序链表中的重复元素
83.删除排序链表中的重复元素题解:要删除一个已排序链表中的所有重复元素,从而使每个元素只出现一次,我们可以使用一个指针来遍历这个链表,同时比较当前节点和它下一个节点的值。如果它们相等,我们就删除下一个节点,如果不相等,我们就移动指针。注:本题使用的是虚拟头节点#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
合并两个有序数组
88.合并两个有序数组题解:这是一个经典的双指针问题,我们可以使用两个指针分别指向nums1和nums2的最后一个元素,然后比较两个指针所指向的元素大小,将较大的元素放入nums1的末尾,并将对应的指针向前移动一位。重复这个过程,直到nums2的所有元素都被放入nums1中。classSolution:defmerge(self,nums1:List[int],m:int,nums2:List[i
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
对称二叉树
101.对称二叉树题解:首先我们要清楚,对称二叉树,比较的不是左右节点,而是根节点的左右子树是不是相互翻转的。比较的是两个树。就是说左子树的左节点和右子树的右节点做比较,左子树的右节点和右子树的左节点做比较。我们使用递归方法。1.递归函数的参数和返回值前面已经说过了,比较的是两个树,自然是左子树和右子树节点返回值是bool类型compare(left,right)2.终止条件节点为空的情况左节点为
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
二进制求和
67.二进制求和classSolution:defaddBinary(self,a:str,b:str)->str:result=''carry=0foriinrange(max(len(a),len(b))):a_bit=a[-(i+1)]ifi
独孤--蝴蝶
·
2024-01-15 16:18
leetcode
leetcode-
移除元素
27.移除元素此题和26.删除有序数组中的重复项题是一样的,都使用快慢指针classSolution:defremoveElement(self,nums:List[int],val:int)->int:slow=0forfastinrange(len(nums)):ifval!=nums[fast]:nums[slow]=nums[fast]slow+=1returnslow
独孤--蝴蝶
·
2024-01-15 16:48
leetcode
leetcode-
平衡二叉树
110.平衡二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defisBalanced(self,root:Optional[TreeNode
独孤--蝴蝶
·
2024-01-15 16:47
leetcode
Palindromic Substrings回文子串【Medium】【Python】【中心扩展】【
动态规划
】
LeetCode0647.PalindromicSubstrings回文子串【Medium】【Python】【中心扩展】【
动态规划
】ProblemLeetCodeGivenastring,yourtaskistocounthowmanypalindromicsubstringsinthisstring.Thesubstringswithdifferentstartindexesorendindex
Wonz
·
2024-01-15 16:29
数据结构学习 jz14剪绳子
关键词:数学
动态规划
快速幂这道题其实是分为两题。题目一:这道题我是没有思路的,看了k神的答案才知道有数学的方法。方法一:数学:其实中间的推导我没看,我服了。
_Rindo
·
2024-01-15 14:36
数据结构学习
数据结构
学习
数据结构学习 jz19正则表达式匹配
关键词:
动态规划
这题确认dp状态不难,最关键也是最麻烦的是找到正确的转移方程。我参考了这位大神的答案。题目:思路:dp状态:dp[i][j]:代表字符串s的前i个字符和p的前j个字符能否匹配。
_Rindo
·
2024-01-15 14:06
数据结构学习
学习
AcWing 构造数组 区间合并
思路:这道题第一眼来看以为是
动态规划
类型的题目,然而尝试了用dp的方法做,然而超时了,过了差不多一半的测试店,显示的是超时。那么应该来说
动态规划
是可以做的,但数据卡的比较严。
江南路漫
·
2024-01-15 12:36
AcWing
算法
分割等和子集(java
动态规划
)
Problem:416.分割等和子集文章目录题目描述思路解题方法复杂度Code题目描述思路该题目可以归类为0-1背包问题,具体到细节可以再归纳为背包是否装满问题1.首先判断数组元素和的奇偶性(奇数则不能划分)2.我们定义一个二维布尔类型数组,用于记录每一阶段的可选状态3.针对于动态转移方程:我们要判断最终是否可以选取一些数使其和为原来数组元素和的一半,即通过一层一层的选择数(状态转移),判断最终状
LNsupermali
·
2024-01-15 12:03
力扣题目
leetcode
java
动态规划
三角形最小路径和(Java
动态规划
)
Problem:120.三角形最小路径和文章目录题目描述思路解题方法复杂度Code题目描述思路Problem:64.最小路径和本题目可以看作是在上述题目的基础上改编而来,具体的思路:1.记录一个int类型的大小的n乘nn乘nn乘n的数组(其中nnn为数组triangle的行数)用于记录每一个当前阶段的最小路径和2.大体上可以依据题意得出动态转移方程为dp[i][j]=Math.min(dp[i-1
LNsupermali
·
2024-01-15 12:03
力扣题目
leetcode
java
动态规划
珠宝的最高价值(java
动态规划
)
Problem:LCR166.珠宝的最高价值文章目录解题思路思路解题方法复杂度Code解题思路思路改题目与本站64题实质上是一样的,该题目在64题的基础上将求取最小路径和改成了求取最大路径和。具体实现思路如下:1.定义一个int类型的二维数组dp大小为给定矩阵frame的行数与列数。该数组用于记录每个当前阶段的最大路径和(也是本题目的最大价值)2.动态转移方程为**dp[i][j]=Math.ma
LNsupermali
·
2024-01-15 12:01
力扣题目
leetcode
java
动态规划
Day 45
动态规划
7
70.爬楼梯代码随想录1.思路不难看出,这道题是一个完全背包计数问题,因为是排列(131和113是两种),因此背包遍历在外循环,物品遍历在内循环。#include#includeusingnamespacestd;intmain(){intn,m;while(cin>>n>>m){vectordp(n+1,0);dp[0]=1;for(inti=1;i=0)dp[i]+=dp[i-j];}}cou
韩纪初
·
2024-01-15 10:36
算法
Day 46
动态规划
8
139.单词拆分代码随想录1.思路(1)对背包问题的转化这道题可以很简单的转化为,目标字符串为背包,物品为字典内元素,优化目标为是否可以进行拆分。但是怎么进行dp数组的构建,是一个比较困难的问题。遍历每个物品不太现实,因为每个物品都是字符串,不可比。因此,可以遍历位置,每次判断是否可以组成物品。这是一种化间断为连续的方法。(2)dp数组dp[i]代表该i长度可以拆分为很多单词(boolean)(3
韩纪初
·
2024-01-15 10:36
算法
数据结构
Day 44
动态规划
6
K52.完全背包代码随想录1.思路(1)dp数组定义以及更新模式完全背包和01背包的区别可以从展开的二维背包中看出来:01背包:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weights[i-1]]+values[i-1])完全背包:dp[i][j]=max(dp[i-1][j],dp[i][j-weights[i-1]]+values[i-1])区别就在i-1上。在保持原
韩纪初
·
2024-01-15 10:36
动态规划
算法
上海计算机学会11月月赛 乙组题解
上海计算机学会11月月赛乙组题解本次比赛涉及算法:字符串、贪心、二分、思维、树形
动态规划
、乘法逆元、状态压缩、折半枚举。
超哥聊信奥
·
2024-01-15 09:48
上海计算机学会月赛题解
算法
c++
数据结构
动态规划
深度优先
广度优先
代码随想录-刷题第五十五天
动态规划
五步曲分析:dp[i][j]表示以下标i-1为结尾的字符串word1,和以下标j-1为结尾的字符串word2,最近编辑距离为dp[i][j]。
涛声依旧9087
·
2024-01-15 09:20
数据结构
算法
数据结构
java
leetcode
动态规划
代码随想录-刷题第五十四天
动态规划
五步曲:dp[i][j]表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。注意这里是判断s是否为t的子序列。即t的长度是大于等于s的。
涛声依旧9087
·
2024-01-15 09:49
数据结构
数据结构
算法
java
leetcode
动态规划
周赛379(排序、分类讨论、记忆化搜索(
动态规划
))
文章目录周赛379[3000.对角线最长的矩形的面积](https://leetcode.cn/problems/maximum-area-of-longest-diagonal-rectangle/)排序[3001.捕获黑皇后需要的最少移动次数](https://leetcode.cn/problems/minimum-moves-to-capture-the-queen/)分类讨论[3002.
Miraclo_acc
·
2024-01-15 08:16
算法刷题记录
#
LC周赛
动态规划
算法
leetcode-
将有序数组转换为二叉搜索树
108.将有序数组转换为二叉搜索树二叉搜索树的定义:首先它是有序树若其左子树不空,则左子树上所有节点的值均小于它的根节点的值若其右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分别为二叉搜索树此题的题目中还强调了一点,高度平衡,这就需要知道平衡二叉树的概念:左子树和右子树的高度之差的绝对值不超过1左右子树都是平衡二叉树左右子树都是二叉搜索树#Definitionforabin
独孤--蝴蝶
·
2024-01-15 06:23
leetcode
整数拆分:
动态规划
(c++)
leetcode343.整数拆分分析状态表示:·dp[i]表示整数i拆分乘积的最大值。转移方程:·对于每个数字i都进行一遍循环,计算(i-j)*j,(j<=i-1),并求其与dp[i],dp[i-j]*j的最大值,即:dp[i]=max(dp[i],(i-j)*j,dp[i-j]*j)·与dp[i-j]*j比较是因为i-j可能小于i-j拆分的乘积。边界:·输入的整数n大于等于2,考虑到会拆分成类似
joe_170d
·
2024-01-15 06:39
代码随想录刷题题Day33
1单词拆分139.单词拆分思路:
动态规划
法(1)确定dp数组以及下标的含义dp[i]:字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词(2)递推公式如果确定dp[j]
Big David
·
2024-01-15 05:47
代码随想录刷题
代码随想录
C++
动态规划
多重背包
第 14 章 程序员常用算法
代码实现14.2分治算法14.2.1分治算法介绍14.2.2分治算法的基本步骤14.2.3分治(Divide-and-Conquer(P))算法设计模式如下:14.2.4分治算法最佳实践-汉诺塔14.3
动态规划
算法
黄土高坡上的独孤前辈
·
2024-01-15 04:23
机器学习与深度学习
算法
leetcode-2645 构造有效字符串的最小插入数
题目链接2645.构造有效字符串的最少插入数-力扣(LeetCode)解题思路
动态规划
1、定义状态d[i]为将前i个字符(为了方便编码,下标从1开始)拼凑成若干个abc所需要的最小插入数。
杜阿福
·
2024-01-15 03:56
leetcode
算法
职场和发展
5. 最长回文子串
【解题思路】不要多想,本题就用
动态规划
解决。既然是
动态规划
,那么就要考虑
动态规划
数组如何建立,一般我们都会建立一个二维数组用于存储
动态规划
的中间过程,而在这之前,要充分挖掘题目的规律。
五点钟科技
·
2024-01-15 02:15
一起来刷题
#
子串问题
算法
python
数据结构
动态规划
leetcode
刷题
如何用
动态规划
解决0-1背包问题(C语言实现)
对于一组不同重量、不可分割的物品,我们需要选择一些装入背包,在满足背包最大重量限制前提下,背包中物品总重量的最大值是多少?假设此时是5个物品,2,2,4,6,3,然后背包最大承载两是9.假如我们使用回溯算法解决该问题,代码如下intmaxW=0;//最大重量intn=5;//物品数目intw=9;//背包最大重量intweight[]={2,2,4,6,3};//物品重量,2,2,4,6,3voi
xuzhougeng
·
2024-01-15 02:53
代码随想录第第五十七天—回文子串,最长回文子序列
leetcode647.回文子串题目链接:回文子串版本一:
动态规划
dp数组及下标的含义dp[i][j]:区间范围[i,j](左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false
荒野饮冰室
·
2024-01-15 00:08
动态规划
数据结构
算法
【面试高频题】难度 3/5,可直接构造的序列 DP 题
Tag:「前缀和」、「构造」、「双指针」、「序列DP」、「
动态规划
」你有两个有序且数组内元素互不相同的数组nums1和nums2。
宫水三叶的刷题日记
·
2024-01-14 23:32
【
动态规划
】63. 不同路径 II
链接:63.不同路径II-力扣(LeetCode)问题描述:解释:障碍物的位置对路径总数的贡献为0intuniquePathsWithObstacles(vector>&obstacleGrid){intm=obstacleGrid.size();intn=obstacleGrid[0].size();vector>dp(m,vector(n,0));for(inti=0;i
杨主任o_o
·
2024-01-14 17:41
动态规划
算法
代码随想录训练营Day43
动态规划
Part05|1049. 最后一块石头的重量 II|494. 目标和|474.一和零
1049.最后一块石头的重量II没有思路,不知道如何用背包问题解决Carl提示和416很像,也是将石头分为两组,只是416题要求两组价值完全一样,本题则是希望价值越大越好,越大越接近总值的一半,就会令两组的差距越小本题用的滚动一维dp数组,有很多要注意的细节:voidtest_1_wei_bag_problem(){vectorweight={1,3,4};vectorvalue={15,20,3
古德猫宁已存在
·
2024-01-14 16:53
动态规划
算法
数据结构
leetcode
c++
代码随想录算法训练营第43天 |
动态规划
part05 ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
#1049最后一块石头的重量II自己没想出来呜呜。我思考的时候以为是有特定顺序才行,然后回想一下背包问题好像不能解决顺序的,只能解决组合的,也就是每个东西有或者没有,然后我就觉得我想不出来了。这个时候我应该联想到背包问题只能解决组合的,所以这道题我那样想顺序的想法就是错的,要转变思路看了随想录学会了,自己写了:先用数学想一下n个(y-x)相加,即这些y之和-这些x之和=》分成重量尽可能接近的两堆=
weixin_51674457
·
2024-01-14 16:52
代码随想录一刷
动态规划
算法
leetcode
c++
Day43|
动态规划
part05: 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
1049.最后一块石头的重量IIleetcode链接:力扣题目链接视频链接:这个背包最多能装多少?LeetCode:1049.最后一块石头的重量II有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x=stones[i];j--){dp[j]=max(dp[j],dp[j-stone
QHG7C0
·
2024-01-14 16:22
数据结构与算法(一刷)
动态规划
算法
算法训练第四十三天|1049. 最后一块石头的重量 II 、494. 目标和、474.一和零
动态规划
part051049.最后一块石头的重量II题目描述思路总结494.目标和题目描述思路回溯算法
动态规划
总结474.一和零题目描述思路总结1049.最后一块石头的重量II题目链接:1049.最后一块石头的重量
凌锋lin6
·
2024-01-14 16:22
算法
leetcode
动态规划
c++
数据结构
代码随想录算法训练营第四十三天|1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
第九章
动态规划
part051049.最后一块石头的重量II有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。
Keponcod
·
2024-01-14 16:20
算法
动态规划
leetcode
第九章
动态规划
part05 1049. 最后一块石头的重量II 494. 目标和 474. 一和零
第四十三天|第九章
动态规划
part051049.最后一块石头的重量II494.目标和474.一和零一、1049.最后一块石头的重量II题目链接:https://leetcode.cn/problems/
旧日ζั͡ޓއއއ昔年
·
2024-01-14 16:50
动态规划
算法
代码随想录|day43|
动态规划
part05---------● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
总链接:第九章
动态规划
part051049.最后一块石头的重量II链接:代码随想录本题就和昨天的416.分割等和子集很像了,可以尝试先自己思考做一做。自己的答案,看着视频后做出来了,没有细看视频。
isabelightL
·
2024-01-14 16:49
代码随想录
动态规划
算法
代码随想录算法训练营第46天|
动态规划
part04|1049. 最后一块石头的重量 II、494. 目标和 、 474.一和零
代码随想录算法训练营第46天|
动态规划
part04|1049.最后一块石头的重量II、494.目标和、474.一和零1049.最后一块石头的重量II1049.最后一块石头的重量II代码随想录思路:本题其实就是尽量让石头分成重量相同的两堆
gengjiahao
·
2024-01-14 16:49
算法
动态规划
代码随想录训练营Day42
动态规划
part05● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
1049.最后一块石头的重量II题目链接:1049.最后一块石头的重量II-力扣(LeetCode)文章链接:代码随想录(programmercarl.com)视频链接:这个背包最多能装多少?LeetCode:1049.最后一块石头的重量II这道题其实也是个背包问题,不过要稍微动一动脑筋。怎样使剩下的石头最小?我们可以把这一堆石头尽量分成重量相近的两堆,那只要这两堆相减,就得到了最小的石头了。这样
搁浅~~
·
2024-01-14 16:49
动态规划
算法
leetcode
c++
数据结构
代码随想录算法训练营第四十三天 |
动态规划
part 5 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零
目录1049.最后一块石头的重量II思路代码494.目标和思路代码474.一和零思路代码1049.最后一块石头的重量IILeetcode思路本题尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小,这样就化解成01背包问题了。所以本题和416.分割等和子集几乎一样。不同的地方在于,想要得到最后剩下的石头的重量,returnsum(stones)-dp[target]*2代码dp数组是True或者F
enzoherewj
·
2024-01-14 16:48
代码随想录算法训练营
算法
动态规划
leetcode
python
上一页
21
22
23
24
25
26
27
28
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他