2020年9月8日
摘要:
这题这么简单也好意思标中等吗? 这题的朴素写法: for(int a = 1; a <= n; a++){ for(int b = a + 1; b <= n; b++){ for(int c = b + 1; c <= n; c++){ ...// 总共 k 层for循环 { int res[]
阅读全文
posted @ 2020-09-08 00:36
Ricochet!
阅读(164)
推荐(0)
2020年9月7日
摘要:
一、快速排序的原理 对于一个数组,我们可以随机选定其中一个值,记为 m。 比m大的数,挪动到m的右边。比m小的数,挪动到m的左边。 然后,我们分别对左右两边再次进行快速排序。 当排序区间小到1的时候,快排就结束了。 二、代码 快排的代码细节在于如何调整下标。 void quicksort(vecto
阅读全文
posted @ 2020-09-07 16:00
Ricochet!
阅读(323)
推荐(0)
2020年9月6日
摘要:
一、什么是堆? 堆是一种数据结构,是一种特殊的二叉树。堆安排在一个连续的数组中,这个数组的下标从 1 开始,节点 i 的子节点下标可以用 i * 2, i * 2 + 1 计算得到。 例如,3 的子节点就是 3 * 2 = 6, 3 * 2 + 1 = 7。 此外,节点直接还满足这样一个性质:父节点
阅读全文
posted @ 2020-09-06 18:13
Ricochet!
阅读(199)
推荐(0)
2020年9月5日
摘要:
class Solution { int fact(int n){ int ret = 1; for(int i = 2; i <= n; i++){ ret *= i; } return ret; } public: string getPermutation(int n, int k) { st
阅读全文
posted @ 2020-09-05 09:12
Ricochet!
阅读(133)
推荐(0)
2020年9月3日
摘要:
class Solution { vector<vector<string>> ans; vector<string> tmp; int N; char Q = 'Q'; public: bool check(int i, int j){ for(int k = i - 1; k >= 0; k--
阅读全文
posted @ 2020-09-03 20:50
Ricochet!
阅读(111)
推荐(0)
2020年8月26日
摘要:
海量数据问题指的是给定了一些无法一次放进内存的大文件,要求用内存有限的机器去处理这些海量数据。 一般海量数据的问题可以分为以下几类: 找第 k 大的数 找前 k 大的数 找中位数 查找一个条目在不在数据里 查找两个大文件的相同条目 出现频率最高的 k 个条目 提取数据中重复出现的条目 数据中没有重复
阅读全文
posted @ 2020-08-26 22:04
Ricochet!
阅读(400)
推荐(0)
2020年8月8日
摘要:
二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 给题解二的代码做个笔记。 class Solution { public: void recoverTree(TreeNode* root) { stack<TreeNode*> stk; TreeNode* x = nu
阅读全文
posted @ 2020-08-08 23:31
Ricochet!
阅读(142)
推荐(0)
2020年6月9日
摘要:
这题朴素地考虑,会直接递推求解,但是这样会 TLE。 上网搜索,你可能会在网上看到这样的代码: cout << f[(n-1)%49] << endl; 然后各种抽屉原理的解释…… 然而这是错的。你可以自己递推 100 个数字,然后和这个式子的答案做对比,很容易发现答案不相等。 因为循环节的长度不一
阅读全文
posted @ 2020-06-09 10:06
Ricochet!
阅读(183)
推荐(0)
2020年6月8日
摘要:
June 8th I‘m sorry that I wasted almost two month with almost nothing achieved. Even the daily target of reviewing 10 pages of math was failed as well
阅读全文
posted @ 2020-06-08 20:37
Ricochet!
阅读(139)
推荐(0)
2020年6月5日
摘要:
#include <iostream> #include <string> using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define RANGE(i,a) for(int i=0;i<(a);++i) #defi
阅读全文
posted @ 2020-06-05 12:52
Ricochet!
阅读(224)
推荐(0)