文章 2022-04-23 来自:开发者社区

面试宝典:数据结构-HashSet

“脱掉HashSet的外衣“构造函数默认构造器将传入的集合添加到HashSet的构造器public HashSet() { map = new HashMap<>(); }将传入的集合添加到HashSet的构造器public HashSet(Collection<? extends E> c) { map = new HashMap...

面试宝典:数据结构-HashSet
文章 2022-04-23 来自:开发者社区

面试宝典:数据结构-ArrayList(下)

当 要 add 进第1个元素时,minCapacity为(size+1=0+1=)1在Math.max()方法比较后,minCapacity 为10然后紧接着调用ensureExplicitCapacity更新modCount的值并判断是否需要扩容oldCapacity为旧数组的容量newCapacity为新数组的容量(oldCap+oldCap/2:即更新为旧容量的1.5倍)检查新容量的大小是....

面试宝典:数据结构-ArrayList(下)
文章 2022-04-23 来自:开发者社区

面试宝典:数据结构-ArrayList(上)

前言这篇文章咱介绍下 ArrayList面试考点 有备无患 默认大小默认大小为10扩容为原来的一半 扩容一次以后为15扩容使用Arrays.copyOf(elementData, size, Object[].class);懒加载1.7之后都是延迟初始化无参构造器,指向的是默认容量大小的Object数组,注意使用无参构造函数的时候并没有直接创建容量为10的Object数组,而是采取懒加载的策略:....

面试宝典:数据结构-ArrayList(上)
文章 2022-04-22 来自:开发者社区

【Java数据结构】Map&Set的理解与应用(附面试题加深理解)

搜索概念及场景Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有:直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢二分查找,时间复杂度为O(log2 N) ,但搜索前必须要求序列是有序的上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如:根据姓名查询考试成绩通讯录,即根据姓名查询联系方....

【Java数据结构】Map&Set的理解与应用(附面试题加深理解)
文章 2022-04-20 来自:开发者社区

【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树(深入理解二叉树)+进阶大厂面试题(一行一注释)下

3. 给定一个二叉树,找到该树中两个指定节点的最近公共祖先题目:思路:祖先的定义: 若节点 p 在节点 root 的左(右)子树中,或 p = root ,则称 root 是 p 的祖先。根据以上定义,若 root 是 p,q 的 最近公共祖先 ,则只可能为以下情况之一:①p 和 q 在 root的子树中,且分列 root 的 异侧(即分别在左、右子树中);②p = root ,且 q 在 ro....

【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树(深入理解二叉树)+进阶大厂面试题(一行一注释)下
文章 2022-04-20 来自:开发者社区

【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树(深入理解二叉树)+进阶大厂面试题(一行一注释)上

非递归实现遍历二叉树(深入理解二叉树)代码每行都有注释,可以一步一步的画着图走一走,多走几遍,理解会上一个档次!前序遍历和中序遍历都用到栈,代码可以说一模一样,只不过打印节点的时机不一样⭐非递归前序遍历// 非递归实现前序遍历 public void FDG_reOrderTraversal(TreeNode root){ if (root == null) {//先判断...

【Java数据结构】二叉树进阶——非递归实现前中后序遍历二叉树(深入理解二叉树)+进阶大厂面试题(一行一注释)上
文章 2022-04-20 来自:开发者社区

【Java数据结构】 二叉树经典OJ面试题——刷题笔记+解题思路

二叉树的前序遍历前中后序 遍历 其实方法都一样,就是把节点的访问顺序变一下,代码都一模一样,只是换顺序罢了题目:思路: 本题要求将遍历到的节点放入一个List中返回前序遍历顺序:根节点——>左孩子节点——>右孩子节点先判断根节点,如果根节点为空,直接返回list将当前访问的根节点存入顺序表中然后递归访问左孩子节点最后递归访问右孩子节点实现代码:class Solution { ...

【Java数据结构】 二叉树经典OJ面试题——刷题笔记+解题思路
文章 2022-04-20 来自:开发者社区

【Java数据结构】栈与队列 经典面试题——刷题笔记(下)

4. 用栈实现队列题目:思路:队列是先进先出,需要用到两个栈才能实现队列指定S1为输入栈,S2为输出栈入队时,直接将元素压入S1栈即可出队时,要将输入栈S1中的元素依次出栈,并压入输出栈S2中,然后将S2栈顶元素出栈,这样就能实现先入队的元素先出队,有一点要注意,只有S2为空的时候,才能将输入栈S1中的元素移到S2中,不然会打乱队列顺序!实现代码:class MyQueue { //创建...

【Java数据结构】栈与队列 经典面试题——刷题笔记(下)
文章 2022-04-20 来自:开发者社区

【Java数据结构】栈与队列 经典面试题——刷题笔记(上)

1. 实现一个最小栈题目:思路:把题目要求的最小栈内部分为两个栈,一个stack用于储存所有元素,另一个min_stack用于储存最小的元素压入第一个元素时,这个元素就是当前栈里最小元素,所以不光要压入stack栈中也要压入min_stack栈中压入第二个元素的时候,要判断这个元素是否小于min_stack里的栈顶元素,如果小于,则将其压入min_stack总之min_stack栈顶元素要始终保....

【Java数据结构】栈与队列 经典面试题——刷题笔记(上)
文章 2021-12-30 来自:开发者社区

【图解数据结构与算法】LRU缓存淘汰算法面试时到底该怎么写(下)

Java LinkedHashMapHashMap就是通过hash表这种数据结构实现的。而LinkedHashMap并不仅仅是通过链表法解决散列冲突的。HashMap<Integer, Integer> m = new LinkedHashMap<>(); m.put(3, 11); m.put(1, 12); m.put(5, 23); m.put(2, 22); fo....

【图解数据结构与算法】LRU缓存淘汰算法面试时到底该怎么写(下)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注