初见ucontext
协程 什么是协程? 协程通俗一点可以看作一种轻量级线程。408中深入学习过进程与线程,它们都是操作系统级的并发/并行方式,而协程可以实现用户级的并发编程。 具体来说,协程在执行过程中可以实现用户级的yield(暂停)和resume(恢复):协程中,函数可以在执行过程中yield,然后切换至另一个函数
【最短路】dj堆优化的细节处理
先不多说,记录一下对如下代码的理解: while(!pq.empty()) {
int now = pq.top().first;
pq.pop();
if(visited[now] == 1) {
continue;
}
visited[now] = 1;
for(pair<int
【二叉树/图】ACM模式下的树/图数据输入
普通二叉树 首先是二叉树的结构,假如数据用以下方式给出: 第一行一个整数n(1≤n≤50),表示二叉树的结点个数; 接下来n行,每行一个结点,按顺序给出编号从0到n-1的结点的左子结点编号和右子结点编号,中间用空格隔开。如果不存在对应的子结点,那么用-1表示。 6
2 5
-1 -1
1 4
-1
【回溯去重】组合总和2
题目:40. 组合总和 II 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target
【字符串#1】替换数字
替换数字: 给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。 对于输入字符串 "a5b",函数应该将其转换为
【字符串#2】翻转字符串里的单词
题目:151.翻转字符串里的单词 给定一个字符串,逐个翻转字符串中的每个单词。不能存在任何"多余的"空格 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 2: 输入: " hello world! " 输
算法竞赛/机试C++常用STL用法记录
由于本科期间几乎只写java和前端,对STL一些常用容器不熟悉,经常刷题刷着刷着需要去查各种容器用法。于是此处记录一些常用的容器及相关语法 set/unordered_set性能分析和基本操作 set是基于红黑树实现的,内部元素有序。常用的操作如下: #include<set>
using name
换一种角度理解二分查找:快速写对二分
引题:leetcode704 二分查找 给定一个长度为n且有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。 整数二分查找的第一种理解:搜索 对于大多数人第一次学习整数二分时,我们学到的理