目录
数据库知识点:
用户定义完整性:
属性上的约束条件: (列级
--不允许为空
--eg:
sno char(9) not NULL
--列值取值唯一 (不存在重复
--eg:
dname char(9) unique NULL
--约束语句
--eg:
sex char(2) check(sex in ('男','女'))
元组上的约束条件: (表级) 一样的check , 不过在表级约束后面.
完整性约束子句:
作用: 方便修改约束 , 删除.
示例:
--建立约束
--eg:
constraint col check(sex in ('男','女')) --not NULL , unique not NULL
--col 为用户设立的名字.
--用户修改 , 删除约束
alter constraint _____(表名
--修改: (即使删除 + 添加
drop constraint _____(约束名
add constraint _____(约束名) check()
--定义 '域' 约束
constraint domain GenDom char(9)
check()
leetcode每日一题:
题意: 转换成直叙就是求覆盖率.
解题: 求覆盖率的方法有 差分 , 暴力标记 , 双指针. (个人还是用双指针顺手点. 所以我们来具体讲一下双指针的解题思路.
设立两个指针 left 和 right . left表示的是连续区间的左端点 , right表示的是连续区间的右端点. 区间长度就是 right - left + 1. (这很好理解的.
关键是怎么更新 left 和 right , 什么时候求区间长度. 这里用图来解释更加清晰.
class Solution {
public:
int findPoisonedDuration(vector<int>& timeSeries, int duration) {
if(timeSeries.size() == 0) return 0;
int left = timeSeries[0] , right= timeSeries[0] , re = 0;
for(auto ao : timeSeries){
if(ao <= right) right = ao + duration - 1;
else if(ao > right) re += (right - left + 1) , left = ao , right = ao + duration - 1;
}
re += (right - left + 1);
return re;
}
};
那团火能照亮前路 , 能让匍匐而行者起身奔跑 , 让黑暗褪去 , 让希望显性. 我始终坚信如此.Day Nineteen -- 折枝花满衣.