dp完全背包.md
看代码随想录一直不太理解这两句话 如果求组合数就是外层for循环遍历物品,内层for遍历背包。 如果求排列数就是外层for遍历背包,内层for循环遍历物品。 为什么是这样? 12345678// 求组合数// 外层循环:遍历物品(颜料)for (int item : items) { // 内层循环:遍历背包容量(货架格子) for (int j = item; j <= capacity; j++) { dp[j] += dp[j - item]; }} 第一轮 (拿出红色颜料):你拿着红色颜料,从头到尾把货架上所有能刷的地方都刷一遍,更新一遍货架的状态。刷完后,你把红色颜料放回去,并且再也不碰它了。 第二轮 (拿出蓝色颜料):你拿着蓝色颜料,在当前已经有了红色的货架的基础上,再把所有能刷的地方刷一遍。因为你固定了物品的使用顺序。你总是先用完所有可能的红色,再用蓝色,再用绿色。所以,你最终得到的方案里,颜色出现的顺序必然是 (红, 蓝, 绿),你永远不会得到 (蓝, 红, 绿)...
spring快速入门1
今天搓了一个简单的博客后端,然后之后准备学spring,今天借助gemini和博客简单了解一下spring里面的概念 优秀的设计都致力于一件事,解耦 开闭原则(OCP Open/Closed principle) 软件实体应该对扩展开放,对修改关闭,简单来讲就是不改变已有的稳定代码,添加新功能 依赖倒置原则(DIP dependence inversion principle) 高层模块不应该依赖低层模块,两者都应该依赖于抽象(接口)。简单说就是:要面向接口编程,不要面向具体实现编程,想象一下电脑,电脑(高层模块)不关心你插进来的是U盘、鼠标还是键盘(低层模块/具体实现)。只要它们都符合USB接口规范,就能正常工作。 spring的8个模块 spring Core:核心容器,提供了Ioc和DI,负责管理spring中的bean spring Context:在core的基础上增加更多的功能 spring ADP:面向切面编程 spring DAO:数据访问对象 spring ORM:对象关系映射 spring Web MVC spring...
postgreSQL学习笔记(三)
聚合函数 对一组值进行计算,返回单个值,将多行数据压缩成一个统计结果 常用函数 COUNT(*):统计行数 SUM(colum) AVG(column):计算平均值 MAX(column) MIN(column) 12345-- 计算总员工数SELECT COUNT(*) FROM employees;-- 计算公司月薪总支出SELECT SUM(salary) FROM employees; GROUP BY子句 用于将数据按一列或多列进行分组 在SELECT语句中出现的列,并且没被聚合函数包裹都必须出现在GROUP BY子句中 12345678SELECT grouping_column, aggregate_function(column_to_aggregate)FROM table_nameGROUP BY grouping_column; 窗口函数 不改变原始行数,在每一行后面添加聚合计算结果 GROUP...
postgreSQL学习笔记(二)
性能优化-索引 索引可以提升数据库查询性能 索引是预先创建的一种有序的数据结构 创建索引 CREATE INDEX index_name ON table_name (column_name); 验证索引是否生效 EXPLAIN SELECT * FROM table_name WHERE indexed_column = 'some_value'; Seq Scan表示使用全表扫描没用索引 Index Scan表示成功使用索引 索引的好处说完了,代价呢? 空间成本:会占用额外的硬盘空间 维护成本:虽然增加了查询SELECT的速度,但是当数据库要INSERT,UPDATE,DELETE等操作时,还要额外操作索引,降低写操作的速度 使用原则 给谁用 出现在WHERE子句的列 使用JOINd的列 使用ORDER BY的列 谁慎用 写的操作比较多的列 值的重复度比较高的列(比如值是性别) 索引失效 通配符在前面的时候,索引会失效 WHERE name LIKE '张%'; – 能使用索引 (从目录的’Z’部分开始找)。 WHERE name LIKE...
力扣HOT100/最长回文子串
比较难懂的一道题,我看题解看了半天才想明白 题目链接 第一想法是暴力枚举所有的子串,然后判断是否回文,但是太过复杂,判断子串回文要O(n)O(n)O(n),一共有O(n2)O(n ^ 2)O(n2)的子串,整体的时间复杂度就是O(n3)O(n ^ 3)O(n3) ,有点慢 方法一:中心扩展法 回文串无论长短都是中心对称的,这个方法就是遍历中心,然后不断扩展,唯一注意的就是回文串长度是奇数还是偶数,奇数是以字符为中心,而偶数就是以字符间的缝隙为中心,所以循环遍历的条件是i < 2 * n - 1 方法二:Manacher算法
postgreSQL学习笔记(一)
postgreSQL学习笔记(一) 基础环境 创建数据路 CREATE DATABASE datebase_name; 切换数据库 \c database_name; 查看表结构 \d table_name; 创建表 CREATE TABLE table_name; 数据操作 插入数据:INSERT INTO; 查询数据:SELECT column1,column2 FROM table_name; 修改数据:UPDATE table_name SET column1 = new_value1 WHERE condition; 删除数据:必须使用where指定删除哪一行,否则会删除整个表 DELETE FROM table_name WHERE condition; 数据查询与表的结构修改 条件查询 SEWLECT * FROM table_name WHERE condition1 AND/OR condition2; 结果排序 SELECT * FROM table_name ORDER BY column_name...


