数据结构与算法复习

数据结构与算法

找到单链表的三等分点,如果单链表是有环的呢 ?

用快慢指针,一个走一步,一个走三步。如果有环,先判断环在哪,找最后一个节点,然后用之前的无环的做法

从10万个数中找最小的10个,时间复杂度分析(最小堆,考虑内存)?

我们首先取10万个元素中的前10个元素来建立由10个元素组成的最小堆。这样堆顶元素便是当前已知元素的第10大的数;然后依次读取剩下的99990个元素,若读取的元素比堆顶元素大,则将堆顶元素和当前元素替换,并自堆顶至下调整堆;这样读取完所有元素后,堆中的10个元素即为这10万个数最大的10个数,同时堆顶元素为这10万个元素第10大元素

满二叉树第i层有多少个节点?

2的(n-1)次方

一个有序的整数数组,输出两个数,使它们的和为某个给定的值。如果数组无序怎么办,先排序?

每个数跟后面的所有数进行相加比对,遇到相加等于target的添加到List中直接返回即可

两个文件,每个文件中都有若干个url,找出两个文件中相同的url(用HashMap/tire树)海量数据处理?

https://blog.csdn.net/u012289441/article/details/45192775

树的先序中序后序以及应用场景?
数组和链表的使用场景
list中存放可重复字符串,如何删除某个字符串?

https://blog.csdn.net/claram/article/details/53410175
1.循环时倒序(int i = size-1;i>=0;i—)
2.foreash时可以使用copyAndWriteList保证遍历时不报错(遍历的是旧数组,修改数组会重新新建一个新数组,把操作后的值赋值到新数组,写时加锁,读时不加锁)
3.使用迭代器的remove()方法删除元素(itertor的remove方法会保证数组的长度始终相等于遍历的长度)存疑!

HashMap底层实现,怎么实现HashMap线程安全
ArrayList LinkedList 集合类的线程安全问题 底层数据结构

你可能感兴趣的:(数据结构)