主页

Sql题目总结

写在前面 预备知识 联结(join) SQL最强大的功能之一就是能在数据检索查询的执行中联结(join) 表。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结 及其语法是学习SQL的一个极为重要的组成部分。 – MySQL 必知必会 外键(foreignkey) 外键为某个表中的一列,它包含另一个表 的主键值,定义了两个表之间的关系。 联结是一种机制,用来在一条SELECT 语句中关联表,因此称之为联结。使用特殊的语法,可以联结多个表返 回一组输出,联结在运行时关联表中正确的行。 通过相等的值连接两个表的方法为等值联结(equijoin),它基于两个表之间的 相等测试。这种联结也称为内部联结。 典型题目 1251. 平均售价;...

阅读更多

字典树力扣题目总结

背景 前缀树, 字母树. 实现 208. 实现 Trie (前缀树);剑指 Offer II 062. 实现前缀树 - 力扣(Leetcode); class Trie { Trie *next[26]; bool is_end; public: Trie() : next(), is_end(false) { } Trie *helper(string word) { auto cur(this); for (auto c : word) { if (!cur) return nullptr; cur = cur->...

阅读更多

记忆化搜索与动态规划专题力扣题目总结

写在前面 很多动态规划的题都是先记忆化然后才去使用递推优化(动态规划), 直接想确实是比较难, 正如0x3f所说, 记忆化搜索是自动挡, 写起来比较方便, 动态规划是手动挡, 需要自己去找规律. 记忆化搜索 这部分内容很多, 几乎所有的动态规划都是可以直接用记忆化搜索的, 例如最基本的斐波那契和爬楼梯等题目: 1140. 石子游戏 II; 1048. 最长字符串链; 1262. 可被三整除的最大和 - 力扣(Leetcode);(数据范围小, 可贪心, 正难则反) 1595. 连通两组点的最小成本 - 力扣(Leetcode); 记忆化搜索+状态压缩 DP 6893. 特别的排列 - 力扣(Leetcode); 996. 正方形数组的数目 - 力扣(...

阅读更多

深度探索c++对象模型笔记(第二章)构造函数语义学

写在前面 默认构造函数 编译器生成非平凡默认构造函数的四种情况 带有默认构造函数的成员类对象 带有默认构造函数的基类 带有一个虚函数的类 带有一个虚基类的类 下面会分析四种情况 带有默认构造函数的成员类对象 class Foo { public: Foo() { printf("%s\n", __func__); } }; class Bar { public: // 生成默认构造 Foo foo; // 将 Bar::foo 初始化是编译器的责任 char *str; // str初始化要让程序员来做 }; // 可能的实现 // inline Bar::Bar() { foo.Foo::...

阅读更多

深度探索c++对象模型笔记(第一章)关于对象

写在前面 这部分内容主要是一个引子, 包含以下经典的问题, 介绍了 C++在对象模型这方面的设计与演进. 数据成员和成员函数的内存布局 虚函数的内存布局 继承模型, 父类和子类的内存布局 C++对象模型 两种类数据成员: 静态. 非静态 三种类成员函数: 静态 非静态 虚 几种模型 简单对象模型: 一个对象是一系列的槽(slot), 每个 slot 指向一个成员, 成员按照其声明顺序各被指定一个 slot, 每个成员(数据/函数)都有自己的 slot; 表格驱动对象模型: 把所有与成员相关的信息抽取出来, 放在一个数据成员表和成员函数表中, 类对象本身内含指向这两个表格的指针. 成员...

阅读更多

C++定制比较规则的各种方法总结

写在前面 写一下刷题中常用的 C++ 算法库函数 sort(), lower_bound()等函数以及优先队列等需要自己定制比较规则的方法. #include <algorithm> utils 输出 template <typename T> // nd-array can use this ostream& operator<<(ostream& os, const vector<T>& v) { for (auto i : v) os << i << " "; return os << '\n'; } void print_...

阅读更多

贪心力扣题目总结

前置知识 基本贪心问题 难点在于找到能使结果一直逼近最优的一种方法(路径), 然后不断重复找到全局最优. (个人理解) 455. 分发饼干; class Solution { // 直观但是 O(N^2) public: int findContentChildren(vector<int>& g, vector<int>& s) { if (s.empty()) return 0; sort(g.begin(), g.end()); sort(s.begin(), s.end()); int n = s.size(), ans{}; bool use...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits