AcWing 848. 有向图的拓扑序列 用BFS来写拓扑,以前还真没想过这个思路 之前用的都是深搜找拓扑序 依然是正常用数组实现一个邻接表,然后用数组模拟队列,从入度为0,即d[i] == 0的点开始搜索 用数组模拟队列的原因是为了最后方便直接输出拓扑序,就不用另开一个数组专门存储了 代码中的几个 ...
Java中的List是一个常用的数据类型,其一共有三个实现类:ArrayList、Vector和LinkedList 一、ArrayList1、ArrayList是最长用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增 ...
分类:
编程语言 时间:
2021-01-16 12:04:03
阅读次数:
0
集合 Collection单列集合有List 和 Set List集合有: ArrayList集合 特点: 1.存取有序 可以重复 有索引 2.底层是数组实现,查询快,增删慢 ArrayList底层: 1.ArrayList底层是一个数组 2.当初始化ArrayList,数组的长度为0 3.当第一次 ...
分类:
其他好文 时间:
2021-01-07 12:26:22
阅读次数:
0
1.数组 Java数组可以用元素集合初始化: char[] c=new char[]{'.','.','.','.'}; 而想要用指定数量的相同元素来初始化数组,可以使用Arrays.fill()方法: char[] c=new char[n]; Arrays.fill(c,'.'); 2.Stri ...
分类:
编程语言 时间:
2021-01-05 11:24:03
阅读次数:
0
前言 栈(Stack)是一种后进先出的数据结构,仅允许在栈顶插入、删除、读取。队列(Queue)是一种先进先出的数据结构,队头读取、删除,队尾插入。 使用数组实现栈 使用到的MyArrayList和MyLinkedList详情请查看 java实现一个自己的ArrayList和LinkedList p ...
分类:
编程语言 时间:
2021-01-01 12:59:10
阅读次数:
0
1.变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: 1: //文件名: array01.cpp 2: #include<iostream> 3: using namespace std; 4: i ...
分类:
编程语言 时间:
2020-12-28 11:21:58
阅读次数:
0
一、理论 并查集的定义: 并查集是一种树型的数据结构,用于处理一些不交集的合并和查询问题。一般用数组实现。 Find:确定元素属于哪一个子集,它可以被用来确定两个元素是否属于同一个子集。 Union:将两个子集合并成同一个集合。 并查集的优化: 优化1: 降低rank,提高查询效率。合并时要考虑ra ...
分类:
其他好文 时间:
2020-12-04 11:19:39
阅读次数:
6
持续更新中。。。 Java集合总结大全 List接口与接口实现类Set接口与接口实现类Map接口与接口实现类线程安全处理方法ArrayList、LinkedList和Vector的区别HashMap和HashTable的区别List、Set、Map三者的区别 List接口与接口实现类 有序、不唯一 ...
分类:
编程语言 时间:
2020-11-27 11:33:21
阅读次数:
12
? ArrayList和LinkedList,这两个集合大家都不陌生.尤其是ArrayList,可以说是日常开发中用的最多的容器了.而且这两个集合的知识点几乎可以说面试必问的. ArrayList ? ArrayList是List接口的一个实现类,底层是基于数组实现的存储结构,数据都是存放到一个数组 ...
分类:
其他好文 时间:
2020-11-20 12:03:10
阅读次数:
9
参考: https://www.cnblogs.com/g177w/p/8469399.html java数据结构 堆 1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插 ...
分类:
编程语言 时间:
2020-11-01 10:03:45
阅读次数:
14