摘要:
在c++中,由于sort()函数默认提供的是由小到大的排序方式,因此有时候我们需要自定义排序规则来实现由大到小的排序。 一维vector<>排序 #include <bits/stdc++.h> using namespace std; void printvec(vector<int>& vec) 阅读全文
摘要:
拓扑排序定义 给定一个包含 n 个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足: 对于图 G 中的任意一条有向边 (u, v),u 在排列中都出现在 v 的前面。 那么称该排列是图 G 的「拓扑排序」。 题目与解析 lc 210. 课程表 II 我们可以将本题建模成一个求拓扑排序的问题 阅读全文
摘要:
二分图的概念 二分图就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。 染色法概念 二分图算法也称为染色法。如果可以用两种颜色对图中的节点进行着色,并且保证相邻的节点(边两端的节点)颜色不同,那么图为二分。 下图中有相邻节点的颜 阅读全文
摘要:
优先队列的概念 在优先队列中,队列中的每个元素都与某个优先级相关联,但是优先级在队列数据结构中不存在。 优先队列中具有最高优先级的元素将被首先删除,而队列遵循FIFO(先进先出)策略,这意味着先插入的元素将被首先删除。 如果存在多个具有相同优先级的元素,则将考虑该元素在队列中的顺序。 优先队列的语法 阅读全文
摘要:
Map是Eigen中一个非常有用却又很容易被忽略的类,可以用它避免很多不必要的内存拷贝,举个例子,你手头有一个std::vector<Eigen::Vector3d> pts的数据,你需要将这个数据转化成一个n*3的矩阵,以便进行后续的矩阵计算,你会怎么做? 最直接的想法是这样的: MatrixXd 阅读全文
摘要:
一、浅拷贝 Shallow copy: if the field is a pointer to some object, the address of the pointer is copied rather than its contents. (浅拷贝:数据域是一个指针,只拷指针的地址,而非指 阅读全文
摘要:
一、什么是深度优先遍历(DFS) 以“深度”为第一关键词,每次都沿路径到不能再前进时,才退回到最近的岔路口,然后继续按同样的逻辑搜索。 二、题目与解答 题目: Leetcode 695. 岛屿的最大面积 解答思路: 首先要遍历数组,当发现(i,j)对应为陆地时,进行如下步骤: (1)递归解法 递归解 阅读全文
摘要:
本篇为b站的专题笔记,参考链接为 指针和数组的重难点解析 零、指针基础知识回顾 int a = 100; int *p_a = &a; 这里定义了一个int类型的变量a,它占用了地址为 0X11A(乱编的,仅示意)的内存存储了整数100。 在定义指针变量 p_a 的同时对它进行初始化,并将变量 a 阅读全文
摘要:
Copy Constructions (拷贝构造) 拷贝构造:用一个对象初始化另一个同类对象 拷贝构造函数可以简写为 copy ctor,或者 cp ctor。在Unix/Linux中,拷贝文件的命令叫做 cp。 如何声明拷贝构造函数(copy ctor): Circle (Circle&); Ci 阅读全文
摘要:
1. Developing generic function (设计泛型函数) 1.1. Steps (步骤) (1) To start with non-generic function (先设计/编写一个非泛型函数) (2) To debug and test it (调试/测试该函数) (3) 阅读全文