随笔分类 - Data structure
摘要:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3]
阅读全文
摘要:N皇后问题,我们在解决N皇后问题的时候,采用搜索的方法,dg记录的是左对角线的截距,udg记录的是右对角线的截距。之后便可以进行dfs进行求解了 #include <iostream> using namespace std; #define N 20 int n; bool col[N], dg[
阅读全文
摘要:逆序对板子,我们在求逆序的时候,仅仅需要进行在归并排序上加上 mid - i + 1即可 #include <iostream> using namespace std; typedef long long LL; const int N = 100010; int n, q[N], tmp[N];
阅读全文
摘要:归并排序原理如下: 我们首先进行对半划分,我们选择中间那个数字,之后把左右两个数组进行按位比较,组成一个新数组,之后再放回去。 紧接着进行递归。 分析复杂度分析,推导详见快排,原理差不多,复杂度O(n logn),但是快速排序是不稳定的排序,而归并排序是一个稳定的排序。 int tmp[N]; vo
阅读全文
摘要:快速选择原理如下,选择第k大的数字: 我们在快速选择的时候,也同样用了划分的思想,随机选择一个中轴,双指针i, j,指针i从左往右扫描,指针j从右往左扫描,如果i < j 则进行交换,并且继续循环,直到遇到中轴,这时候我们的i和j均为中轴(理由:因为i,j相等),如果数字在中轴的左边,则向左递归,如
阅读全文
摘要:快速排序原理如下: 我们在排序的时候,用到了划分的思想,随机选择一个中轴,双指针i, j,指针i从左往右扫描,指针j从右往左扫描,如果i < j 则进行交换,并且继续循环,直到遇到中轴,这时候我们的i和j均为中轴(理由:因为i,j相等)。我们在中轴左右递归,假设递归到了最后,也就交换了最后两个数。
阅读全文
摘要:⛵️PAT总复习 这篇文章是关于一个PAT的总复习,整理以备复习参考。可能包含不全,我列出了一些易错点 🏖1.多项式 甲级1002.A+B for Polynomials题,多项式中,个人认为,多项式用最快的方法就是map进行存储,然后进行依次打印。(1009.Product of Polyn
阅读全文
摘要:以数据结构算法 7-11 进行解释 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接
阅读全文
摘要:dijkstra和dijkstra堆优化模板 之前QAQ一直没有准备堆优化模板,本例以PAT A1003为例,整理dijkstra和dijkstra堆优化模板 Dijkstra 我们可以发现该篇幅找最小值部分是使用量一个for循环 #include <iostream> #include <algo
阅读全文
摘要:P1364 医院设置 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 11。如上图中,若医院建在1 处,则距离和 =4+12+2\times20+2\ti
阅读全文
摘要:P5076 【深基16.例7】普通二叉树(简化版) 题目描述 您需要写一种数据结构,来维护一些数( 都是 109109 以内的数字)的集合,最开始时集合是空的。其中需要提供以下操作,操作次数 qq 不超过 104104: 查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1。若有多个相同的
阅读全文
摘要:P1827 [USACO3.4]美国血统 American Heritage 题目描述 农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。 你的任务是在
阅读全文
摘要:P4913 【深基16.例3】二叉树深度 题目描述 给出每个节点的两个儿子节点,建立一棵二叉树(根节点为 11),如果是叶子节点,则输入0 0。建好树后希望知道这棵二叉树的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。 最多有 10^6106 个结点。 输入格式 无 输出格式 无 输入
阅读全文
摘要:题目描述 有 2^n(n\le7)2n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节。我经知道各个国家的能力值,且都不相等。能力值高的国家和能力值低的国家踢比赛时高者获胜。1 号国家和 2 号国家踢一场比赛,胜者晋级。3 号国家和 4 号国家也踢一场,胜者晋级……晋级后的国家用相同的方法继续完成
阅读全文
摘要:群友那边的问题总结卡特兰数: N个元素入栈出栈次序。 N个元素的二叉树构成。 凸N变形三角形的划分,都是卡特兰数。 $$ \frac{1}{n + 1}C_{2n}^n $$
阅读全文
摘要:```c // lca_bst node *lca_bst(node *n, node *p, node *q) { if((n->val - p->val) * (n->val - q->val) val val && n->val val) return lca_bst(n->right, p, q); else return lca_bst(n->left, p ,q); } // lca_
阅读全文
摘要:``` #include "iostream" using namespace std; struct node { int val; node *left, *right; node(int v):val(v), left(NULL), right(NULL){} } *root = NULL; int level[] = {1, 2, 3, 4, 5}; int in[] = {4, 2, 1
阅读全文
摘要:```cpp#include "iostream"using namespace std;struct node { int val; node *next; node(int v): val(v...
阅读全文

浙公网安备 33010602011771号