记忆化搜索与动态规划专题力扣题目总结
写在前面
很多动态规划的题都是先记忆化然后才去使用递推优化(动态规划), 直接想确实是比较难, 正如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_...
C++在main函数之前或之后执行的函数
写在前面
总结一波面试题
测试环境 Ubuntu+clang
之前执行
#include <iostream>
using namespace std;
__attribute((constructor)) void before() { // C
cout << "before main 1\n";
}
int a = []() { // C++ 11
cout << "before main 2\n";
return 0;
}();
int t1() {
cout << "before main 3\n";
return 1;
}
static int p1 = t1()...
共计 492 篇文章,62 页。
您是Zorch的第 个小伙伴
Hits