算法模板
爱莉我老婆
Java萌新算法选手一枚,去过蓝桥国赛。励志补全Java版本的算法模板
展开
-
Java的快速判断单个素数的模板
【代码】Java的快速判断单个素数的模板。原创 2023-08-31 20:52:22 · 49 阅读 · 0 评论 -
Java的全排列模板
c++有全排列函数,我们Java没有,所以我们只能自己手写了。模板二:使用hashset来帮助我们去重。原创 2023-08-29 21:14:58 · 159 阅读 · 0 评论 -
动态规划之二维费用背包模板
二位费用就是相比一维费用又多了个费用罢了。比如说我们在一维时只考虑物品的体积,根据背包的最大容积来装物品。而二维费用我们要考虑背包的体积和背包的最大载重量了。在这里我们根据空间优化,仿照一维的背包来写二维背包,去掉第一层。原创 2023-08-15 15:32:09 · 63 阅读 · 0 评论 -
动态规划之混合背包模板
何为混合,混合也就是混合了01背包,多重背包,完全背包的混合体。通过判断物品的件数,如果是1件就是01背包,无限量就是完全背包的算法,有限件就是多重背包的算法。原创 2023-08-14 22:11:31 · 39 阅读 · 0 评论 -
动态规划入门之多重背包
多重背包相交于01背包和完全背包的区别在于多重背包最多可以取得n件物品,其实01背包可以看作多重背包的特例,当多重背包每一件得物品最多都只能取得一个时,那不就是01背包了吗。在这里,我们采用二进制优化,把n件物品拆分成1件2件4件8件直到n-(1+2+4+8+.....)件。由于01背包是多重背包的特例,所以多重背包也是倒序遍历。原创 2023-08-14 21:41:00 · 28 阅读 · 0 评论 -
动态规划之完全背包算法模板
完全背包就是在01背包的基础上解除限制条件,可以一件物品不取也可以取得无穷件的物品。我们只需要在01背包基础上正序遍历,就可以保证我们可以取得背包能承载的最多的第i件物品。原创 2023-08-14 21:34:45 · 31 阅读 · 0 评论 -
动态规划之背包入门01背包模板
采用一维数组优化,倒序遍历保证每件物品只会被加入背包一次。原创 2023-08-14 21:31:26 · 79 阅读 · 0 评论 -
动态规划之分组背包模板
分组背包模板题,我使用了ArrayList来存储每组的物品,大家可以看看。本题的坑点在于是没告诉你组的编号可以从0开始,真不地道。我们特判一下ArrayList是否为空。原创 2023-08-14 21:28:29 · 25 阅读 · 0 评论 -
字典树的Java的板子
【代码】字典树的Java的板子。原创 2023-08-12 17:20:16 · 31 阅读 · 0 评论 -
KMP算法的Java的模板
【代码】KMP算法的Java的模板。原创 2023-08-12 11:43:41 · 53 阅读 · 0 评论 -
动态规划之最长公共子序列模板
dp[i][j]的含义是第i个和第j个字符,i与j的下标从1开始,代表着原子符串的第一个字符。那么理所当然字符串a的第0个字符和字符串b的0个字符的公共长度为0.如果字符串a的第i个字符与字符串b的第j个字符相等的话,我们就找第i-1与第j-1位置的最长公共子序列加1。为什么不找i-1与j的呢,因为j与i个位置的字符已经确定好了,就是这两个位置 的字符相等,所以不能求i-1与j位置。当不相等时,我们就要考虑i与j-1和i-1与j位置的最长公共子序列了。模板代码(不记录)具体是那些数字。原创 2023-08-11 10:01:56 · 384 阅读 · 0 评论 -
动态规划之最长上升子序列模板
我们开个ArrayList不断往里加数字,如果链表为空就直接加入,不为空,如果加入的数字大于链表尾数字,我们加入到链表末端,如果加入的数字小于链表的末尾数字,我们把它找到在链表中第一个大于它的元素的位置,把它替换为我们要加入的元素。在这里我们使用写好的二分方法,大家要注意我们求的是上升子序列不是不下降子序列,一旦我们在ArrayList里边发现一个和我们加入的数字相同的数字,我们必须。)话是这么说,但我们经常做题会发现有些题目有些共性,我们抽取共性总结出来,应付动态规划基础题目还是可以的。原创 2023-08-10 21:41:51 · 163 阅读 · 0 评论