“21 天好习惯”第一期-19

目录

数据库知识点:

leetcode每日一题:


数据库知识点:

用户定义完整性:

        属性上的约束条件: (列级

--不允许为空
--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 -- 折枝花满衣.

猜你喜欢

转载自blog.csdn.net/EX_fish/article/details/121258959