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

浙公网安备 33010602011771号