03 2023 档案
摘要:多线程 1.相关概念 1.1程序、进程与线程 程序:为完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程:程序的一次执行过程,或是正在内存中运行的应用程序。如:运行中的QQ,运行中的网易音乐播放器。 每个进程都有一个独立的内存空间,系统运行一个程序即是一个进程从创建、
阅读全文
摘要:并查集 并查集主要用于解决一些元素分组的问题。它管理一系列不相交的集合,主要由一个整型数组pre[ ]和两个函数find( )、**join( )**构成: pre[ ]:记录了每个点的前驱节点是谁 find(x):用于查找指定节点 x 属于哪个集合 join(x,y):用于合并两个节点 x 和 y
阅读全文
摘要:回溯算法解决排列—组合—子集问题 无论是排列、组合还是子集问题,就是让你从序列 nums 中以给定规则取若干元素,主要有以下几种变体: 元素无重不可复选,即 nums 中的元素都是唯一的,每个元素最多只能被使用一次,这也是最基本的形式。 元素可重不可复选,即 nums 中的元素可以存在重复,每个元素
阅读全文
摘要:滑动窗口 时间复杂度 算法的时间复杂度是 O(N),其中 N 是输入字符串/数组的长度。 为什么呢?简单说,字符串/数组中的每个元素都只会进入窗口一次,然后被移出窗口一次,不会说有某些元素多次进入和离开窗口,所以算法的时间复杂度就和字符串/数组的长度成正比。 大致逻辑 int left = 0, r
阅读全文
摘要:提效神器之Lombok 准备 在IDEA插件中安装Lombok 在IDEA设置中启动annotation processing 添加依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>
阅读全文