目录前言第一题977.有序数组的平方💒题目描述🌟解题报告🌻参考代码(C++版本)第二题268.丢失的数字💒题目描述🌟解题报告🌻参考代码(C++版本)解法一:老老实实模拟解法二:异或运算第三题1877.数组中最大数对和的最小值💒题目描述🌟解题报告🌻参考代码(C++版本)第四题950.按递增顺序显示卡牌💒题目描述🌟解题报告🌻参考代码(C++版本)第五题P1060[NOIP2006普及组]开心的金明💒题目描述🌟解题报告🌻参考代码(C++版本)总结前言零零散散的有几个专栏专栏,只是都没有成气候,我这儿了,可能蓝桥专栏,反响最好,只是受限制于自己的算法能力十分薄弱,就更得特别慢,也不全面吧,蓝桥现在是我
前言背包问题是一类经典的动态规划问题,但在具体的算法考察过程中几乎不会直接问你背包问题原型,往往都是给出一个具体情景,需要你通过分析判定出问题是否符合背包问题的特征,从而是否能够使用动态规划去解决,所以对背包问题原型的熟悉程度很关键,今天我们就先来看看背包问题的“万恶之源”——0/1背包问题。注:本文记录时候参考微信公共号代码随想录中Carl大佬的分析和学习思路,感兴趣的小伙伴可以自行搜索相关内容进行进一步学习,附一个Carl哥的知乎链接:咱就把0-1背包问题讲个通透!-知乎(zhihu.com)正题经典0/1背包问题先给出最经典的0/1背包问题的大致原型描述:给你一个背包,容量为W你面前有一
前言背包问题是一类经典的动态规划问题,但在具体的算法考察过程中几乎不会直接问你背包问题原型,往往都是给出一个具体情景,需要你通过分析判定出问题是否符合背包问题的特征,从而是否能够使用动态规划去解决,所以对背包问题原型的熟悉程度很关键,今天我们就先来看看背包问题的“万恶之源”——0/1背包问题。注:本文记录时候参考微信公共号代码随想录中Carl大佬的分析和学习思路,感兴趣的小伙伴可以自行搜索相关内容进行进一步学习,附一个Carl哥的知乎链接:咱就把0-1背包问题讲个通透!-知乎(zhihu.com)正题经典0/1背包问题先给出最经典的0/1背包问题的大致原型描述:给你一个背包,容量为W你面前有一
01背包最大约数和题目链接点击这里题目描述选取和不超过SSS的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。输入格式输入一个正整数SSS。输出格式输出最大的约数之和。样例#1样例输入#111样例输出#19提示【样例说明】取数字444和666,可以得到最大值(1+2)+(1+2+3)=9(1+2)+(1+2+3)=9(1+2)+(1+2+3)=9。【数据规模】对于100%100\%100%的数据,1≤S≤10001\leS\le10001≤S≤1000。源代码#includeusingnamespacestd;constintN=5050;intf[N],v[N],w[N];int
01背包最大约数和题目链接点击这里题目描述选取和不超过SSS的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。输入格式输入一个正整数SSS。输出格式输出最大的约数之和。样例#1样例输入#111样例输出#19提示【样例说明】取数字444和666,可以得到最大值(1+2)+(1+2+3)=9(1+2)+(1+2+3)=9(1+2)+(1+2+3)=9。【数据规模】对于100%100\%100%的数据,1≤S≤10001\leS\le10001≤S≤1000。源代码#includeusingnamespacestd;constintN=5050;intf[N],v[N],w[N];int
代码随想录day42和day43动态规划模块01背包问题“即使到不了远方,心中也要有远方的模样。”文章目录1.01背包理论基础1.1什么是背包问题1.2二维dp数组01背包1.3一维dp数组(滚动数组)01背包2.leetcode416.分割等和子集2.1详细思路及思考难点2.2具体步骤及代码实现3.leetcode1049.最后一块石头的重量3.1详细思路及思考难点3.2具体步骤及代码实现4.leetcode494.目标和4.1详细思路及思考难点4.2具体步骤及代码实现5.leetcode474.一和零5.1详细思路及思考难点5.2具体步骤及代码实现1.01背包理论基础1.1什么是背包问题
代码随想录day42和day43动态规划模块01背包问题“即使到不了远方,心中也要有远方的模样。”文章目录1.01背包理论基础1.1什么是背包问题1.2二维dp数组01背包1.3一维dp数组(滚动数组)01背包2.leetcode416.分割等和子集2.1详细思路及思考难点2.2具体步骤及代码实现3.leetcode1049.最后一块石头的重量3.1详细思路及思考难点3.2具体步骤及代码实现4.leetcode494.目标和4.1详细思路及思考难点4.2具体步骤及代码实现5.leetcode474.一和零5.1详细思路及思考难点5.2具体步骤及代码实现1.01背包理论基础1.1什么是背包问题
01背包面试题系列(一)题目描述——分割等和子集给你一个只包含正整数的非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例1:输入:nums=[1,5,11,5]输出:true解释:数组可以分割成[1,5,5]和[11]。示例2:输入:nums=[1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。01背包动态规划求解上面的问题乍一看好像是一个子集划分的问题,我们可能根据数据nums得到它的所有的子集,然后将所有的自己加起来看看是否存在一个子集的数据的和等于nums数组所有数据的和的一半,其实我们确实可以这样做,我们将在后文当中仔细探
01背包面试题系列(一)题目描述——分割等和子集给你一个只包含正整数的非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例1:输入:nums=[1,5,11,5]输出:true解释:数组可以分割成[1,5,5]和[11]。示例2:输入:nums=[1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。01背包动态规划求解上面的问题乍一看好像是一个子集划分的问题,我们可能根据数据nums得到它的所有的子集,然后将所有的自己加起来看看是否存在一个子集的数据的和等于nums数组所有数据的和的一半,其实我们确实可以这样做,我们将在后文当中仔细探
深入剖析多重背包问题(上篇)前言在前面的两篇文章当中,我们已经仔细的讨论了01背包问题和完全背包问题,在本篇文章当中将给大家介绍另外一种背包问题——多重背包问题,多重背包问题的物品数量介于01背包问题和完全背包问题之间,他的物品的数量是有限个!多重背包问题介绍有\(N\)种物品和一个容量是\(V\)的背包。第\(i\)种物品最多有\(s_i\)件,每件体积是\(v_i\),价值是\(w_i\)。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。注意:上面使用到的字符含义在本篇文章当中都一样。多重背包问题跟01背包和完全背包的区别都是在物品的可用次数上,01背包只能使用一次