11 2020 档案
摘要:1674. 使数组互补的最少操作次数 LeetCode第217周赛的第三题,比赛时卡了一个小时,没有想到O(n)的做法。对差分不熟悉,但是最关键的还是扫描的思路没有想到。由于这道题有这么几个点比较重要,觉得应该特别记录一下。 扫描:比赛时我也想到了当选定和K处于个个区间[2, lo]、[lo,
阅读全文
摘要:零、基础: 1、图的存储方式: 1)、邻接表: vector<int> h(n, -1); // 邻接表表头指针 vector<int> ne(n); // next指针 vector<int> e(n); // value vector<int> w(n); // 边的权值,有时不需要 int i
阅读全文
摘要:本文是哈工大操作系统课程的环境配置介绍(课程连接),其实课程有配套的实验楼实验环境,可是体验总没有自己本地做得好。本文主要介绍使用Windows系统自带的wsl进行该实验的开发。 一、WSL安装配置: 这里推荐看玩转WSL(1)之认识并安装wsl、玩转WSL(2)之安装并配置Windows Te
阅读全文
摘要:带权并查集是普通并查集的进阶版本,功能更加强大。 普通并查集只能判断两个元素是否在一个集合中,带权并查集可以维护集合元素之间的关系,这个关系由每个元素的权值维护。 对权值的维护,我们需要在find(),unite()操作中分别进行修改。 例:399. 除法求值 class UnionFind { p
阅读全文
摘要:记录踩坑: 做LeetCode每日一题1356. 根据数字二进制下 1 的数目排序时,遇到的坑。题目很简单,利用lowbit操作计算一个数二进制1的个数,接着自定义比较函数进行排序即可,但是C++在类中自定义比较函数不能简单地定义为成员函数,需要定义为静态成员函数。 具体看:Referenc
阅读全文
摘要:并查集是一个非常优雅简洁的,相对高级的数据结构,常常用于元素分组问题。 对于并查集的介绍和推导这里不细说,推荐看Pecco的算法学习笔记。这里主要记录我使用并查集刷题的模板和技巧。 一、什么时候使用并查集? 个人认为并查集可以用在图中,可以用来求取图中的连通分量。当然题目不一定会直接给出图的数据结构
阅读全文
摘要:c++踩坑: 例如string、vector等类型的size函数返回的是一个无符号整型数,如果在表达式中混和使用了带符号数和无符号数,将产生意想不到的结果。 带符号数将自动转换为无符号数,例如-1,由于-1的二进制表示的最高位为1,这回导致size() > -1一定会返回false。在进行判
阅读全文