动态规划
将原问题拆解成若干子问题,同时保存子问题答案,使得每个子问题只求解一次,最终获得原问题答案
本质
把会重复的过程的结果记录下来,之后用到时直接用
自下而上解决问题
通常我们会先自顶向下的思考问题,再自下向上的去实现,使用动态规划代码会更简洁
解题步骤
- 确定dp数组含义
- 初始化dp数组
- 递推公式
- 确定dp数组遍历顺序
函数
select 函数(参数)
字符串函数
select CONCAT("mysql","hello");
select lower('Hello');
select upper("heool")
select LPAD("09",5,"--")
select rpad("00",5,"x")
select TRIM(" hello my ")
select SUBSTRING("hello mysql",1,5);
update esp set username = LPAD(username,15,'0')
数值函数
select CEIL(1.3);
select FLOOR(1.2);
select RAND();
select ROUND(1.3);
-- 随机生成6位数字
select LPAD(ROUND(RAND()*1000000,0),6,'0')
日期函数
select now();
select curdate();
select curtime();
select year('2022-10-12');
select month(NOW());
select day(NOW());
select date_add('2022-10-12',interval 10 DAY);
select datediff(now(),'2022-10-4');
-- 查询所有员工入职天数,并按这个倒序排序
select ename,datediff(now(),joindate) as days from emp order by days desc;
流程函数
select if(false,'ok','erro');
select ifnull(null,'lalal');
SELECT ifnull("bu","lalal");
-- 查询部门地址,北京/上海---》一线 其他---》二线
-- case when then else end when then可以写多个
SELECT
dname,
CASE loc
WHEN '北京' THEN
'一线城市'
WHEN '上海' THEN
'一线城市'
ELSE
'二线城市'
END
FROM
dept;
-- 统计成绩,>= 85 优秀 >= 60 及格 否则不及格
SELECT
name,
CASE
WHEN grade >= 85 THEN
'优秀'
WHEN grade >= 60 THEN
'及格'
ELSE
'不及格'
END
as 等级
FROM
stu;
下周计划
继续学习算法,深入学习Java,复习MySQL,Redis。