摘要:简介 建造者模式指的是将一个复杂对象的创建与表示分离,使得同样的创建过程可以创建不同的表示,分离了部件的构造(由 Builder 负责)和装配(由 Director 负责)。从而可以构造出复杂的对象,这个模式适用于某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦,不同的构建器,相同的装配,也
阅读全文
摘要:题目 https://leetcode.cn/problems/count-number-of-ways-to-place-houses/ 题解 由于道路两边的房子彼此互不影响,因此满足相互独立的条件,故而两侧的方案的乘积就是最后的答案。 因为两侧空地的数量都是 ,因此只要算出其中一侧的方
阅读全文
摘要:前言 对于一个在定义域上极值点的函数,可以求取该函数在定义域上的极值和最值。对于一个凸函数,其极值点对应的函数值就是极小值;对于一个凹函数,其极值点对应的函数就是极大值。且函数若在定义域内有且仅有一个极值点,那么极值点也是最值点。函数的最值,要么出现在极值点,要么出现在定义域上的端点。 对于三分法,
阅读全文
摘要:题目 https://leetcode.cn/problems/maximum-employees-to-be-invited-to-a-meeting/description/ 题解 从 向 连边,会形成一张 个点 条边的有向图,
阅读全文
摘要:题解 内向基环树的一个基本特征就是总共有 个节点和 条边,且每个节点的出度至多为 ,因此本题符合内向基环树的特征。 先使用拓扑排序,标记全部的简单环外的节点,剩余的节点就必定是环上的节点。 参考代码 class Solution { public: int long
阅读全文
摘要:简介 工厂方法模式是一种创建对象的设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法把实例化操作推迟到子类中实现。 工厂方法模式的角色 抽象工厂类:声明工厂方法,负责创建产品对象 具体工厂类:实现抽象工厂类,负责创建具体的产品对象 抽象产品类/接口:定义产品的抽象类/接口,
阅读全文
摘要:前言 基环树,又名环套树,是具有 个节点和 条边的图,比树多出现一个环。基环树也根据边的有向和无向分为了有向基环树和无向基环树。有向基环树又可以分为内向基环树和外向基环树。对于有向基环树,若基环树的每个节点的出度均为 ,则称为内向基环树;若基环树的每个节点的入度均为
阅读全文
摘要:前言 Z 函数的定义 对于一个字符串 ,定义 Z 函数 为以 为起始位置的后缀与整个字符串 的最长公共前缀的长度。 Z 函数的应用 字符串匹配问题 题目 https://codeforces.com/problemset/problem/20
阅读全文
摘要:前言 RTC RTC 即实时时钟(Real-Time Clock),主要是功能有: 时间保持:RTC可以在断电的时候,仍然保持计时功能,保证时间的连续性 时间显示与设置:RTC可以向系统提供年、月、日、时、分、秒等信息,系统也可以通过接口校准RTC的时间保证准确性 关机闹钟PowerOffAlarm
阅读全文
摘要:引言 张三和其舍友收假后回到宿舍,并闲聊了起来。张三说:“我昨天吃了家店,菜品很不错。”其舍友也说:“我昨天也在校门口一家新开的店吃了一下,那家新开的店也很不错。”张三说:“我昨天吃的是鸡公煲,你吃的是什么?”其舍友说:“巧了,我吃的也是鸡公煲。”张三说:“学校门口有好几家鸡公煲呢,你吃的是哪一家的
阅读全文
摘要:题意 第一行输入一个正整数 ,表示共有 组测试用例。对于每一组测试用例: 第一行输入三个正整数 ,且保证 之
阅读全文
摘要:前言 双堆懒删除 当需要维护若干元素中的最大值(或最小值)时,可以用一个堆维护,但是堆只擅长处理堆顶元素,对堆中任意元素的处理就束手无策了。此时,可以引入另外一个堆,我们定义原来的堆为保存堆 ,新的堆为懒删除堆 。那么当需要从保存堆中删除任意一个元素时,可以先将元素放入懒删除
阅读全文