
android面试——数据结构与算法
文章平均质量分 82
秋包
这个作者很懒,什么都没留下…
展开
-
Android实习面试准备——数据结构与算法(六)
1、旋转输出矩阵public int[][] generateMatrix(int n) { if(n<1) return null; int[][] matrix = new int[n][n]; int startX = 0; int startY = 0; int loop = n/2; int mid = n/2; int i; int原创 2022-02-11 17:09:09 · 1567 阅读 · 0 评论 -
Android实习面试准备——数据结构与算法(五)
1、HashMap的底层原理是什么?线程安全么?jdk 1.8以前,HashMap使用数组+链表来实现的,jdk 1.8以后,就采用了数组+链表+红黑树来实现了,先从put方法看起:public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } 跳转到了putVal方法:final V putVal(int hash, K key,...原创 2022-02-10 10:53:45 · 1868 阅读 · 0 评论 -
Android实习面试准备——数据结构与算法(四)
1、已知前序遍历为{1,2,4,7,3,5,6,8},中序遍历为{4,7,2,1,5,3,8,6},它的二叉树是怎么样的 前序遍历是中、左、右,中序遍历是左、中、右,那么前序遍历里的队列第一个一定是中,也就是1,然后在中序遍历队列中找到1,1左边的就是左子树,右边的就是右子树,然后继续这个逻辑进行递归,就能构建出一颗二叉树。(可以看leetcode 105)public TreeNode buildTree(int[] preorder, int[] inorder) { ...原创 2022-02-09 09:41:40 · 1474 阅读 · 0 评论 -
Android实习面试准备——数据结构与算法(三)
关于队列和堆栈1、如何使用栈实现队列的功能一个输出栈,一个输入栈,push的时候进入输入栈,pop的时候从输出栈弹出,如果输出栈是空的,就把输入栈的内容pop再push进输出栈。class MyQueue { private Stack<Integer> input; private Stack<Integer> output; public MyQueue() { input = new Stack<&g...原创 2022-01-24 11:16:14 · 1330 阅读 · 0 评论 -
Android实习面试准备——数据结构与算法(二)
关于链表1、查询第一个跟倒数第二个 第一个直接返回第一个节点就可以,查询倒数第二个节点的话,可以用两个指针,pre和curr,curr在pre的前面,当curr到最后一个节点的时候,pre就是倒数第二个节点。2、arrayList底层原理ArrayList的底层数据结构是一个object类型的数组Object[],默认数组大小为10。当调用无参构造方法时,会将默认大小为10的数组设置给成员变量elementData。public...原创 2022-01-21 09:50:12 · 893 阅读 · 0 评论 -
Android实习面试准备——数据结构与算法(一)
目前准备冲击一下大厂的实习,现在开始刷面经,附上面经题目以及自己的一些答案,答案不是详细的代码,只是一些简要思路,算法方面关于时间和空间复杂度简单的就并没有附上去。如果有什么错误或者更好的答案,麻烦帮帮孩子,谢谢大佬们!!!1、常用的数据结构线性:数组、链表、栈、队列(后面两种在C++中容器适配器,因为其底层实现可能是数组,也可能是链表)(1)数组:内存中连续存储多个元素,数组元素通过下标索引,下标从0开始;优点:查找是O(1)的复杂度,速度快...原创 2022-01-20 10:33:02 · 716 阅读 · 0 评论