随笔分类 -  算法记录

摘要:01背包问题是一个经典的动态规划问题,虽然基础,之前做过很多遍,但是长时间不接触算法还是会忘记,故记录一下。 问题定义: 有 N 件物品和一个容量是V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最 阅读全文
posted @ 2024-12-13 13:53 blazerrr 阅读(321) 评论(0) 推荐(0)
摘要:完全背包问题一般是指: 有N件物品和一个能背重量为W的背包,第i件物品的重量为weight[i],价值为value[i]。每件物品有无限个(也就是可以放入背包多次),求怎样可以使背包物品价值总量最大。 完全背包与01背包问题的区别在于01背包物品只有一个,完全背包有无数个。 1、原始朴素算法: dp 阅读全文
posted @ 2023-03-28 17:00 blazerrr 阅读(405) 评论(0) 推荐(0)
摘要:单调栈,顾名思义就是栈内元素单调排列的栈,分为单调递增栈和单调递减栈。 单调递增栈:从栈底到栈顶,元素从大到小排列;即元素出栈序列为单调递增的。 单调递减栈:从栈底到栈顶,元素从小到大排列;即元素出栈序列为单调递减的。 常见作用: 在数组(数字序列)中为任意一个元素,找 左/右 边第一个比自己 大/ 阅读全文
posted @ 2022-08-12 16:14 blazerrr 阅读(161) 评论(0) 推荐(0)
摘要:字符串哈希顾名思义哈希,可以理解成将字符串映射为一个特定的数字,并且字符串不同,得到的哈希值也不同,那么就可以判断两个字符串是否相等。 用于:快速判断两个字符串(子字符串)是否相等,时间复杂度为O(1)。 核心:把字符串看成一个P进制的数,算出该字符串对应的P进制数。 用unsigned long 阅读全文
posted @ 2022-07-28 18:03 blazerrr 阅读(929) 评论(0) 推荐(0)