摘要:
本文将覆盖 `二分` + `哈希表` + `堆` + `优先队列` 方面的面试算法题,文中我将给出:
1. 面试中的题目
2. 解题的思路
3. 特定问题的技巧和注意事项
4. 考察的知识点及其概念
5. 详细的代码和解析
在开始之前,我们先看下会有哪些重点内容: 阅读全文
摘要:
链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。栈是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 阅读全文
摘要:
排序 冒泡排序 归并排序 快速排序 计数排序 桶排序 二叉树 顺序遍历 先序遍历: 中序遍历: 后序遍历: 层次遍历 深度优先遍历(DFS) 广度优先遍历(BFS) Z 字形遍历 左右翻转 递归 最大值 最大深度 最小深度 平衡二叉树 阅读全文
摘要:
对于 Android Dev 而言,有关 SQLite 的操作再经常不过了,相比你一定经历过控制台一片爆红的情况,这不禁让我们疑问:SQLite 到底是线程安全的吗? 阅读全文
摘要:
不管是网上下载下来的也好,还是从系统图片库中读取的图片,都有一个相同的特点:像素一帮较高。同时我们都知道,`Android` 系统分配给我们每个应用的内存是有限的,由于解析、加载一张图片,需要占用的内存大小,是远大于图片自身大小的。所以,这时程序就可能因为占用了过多的内存,从而出现` OOM` 现象。 阅读全文
摘要:
相比于我们直接使用传统方式,如果直接使用 `Java` 代码进行 `SQLite` 操作,每次都需要手写大量重复的代码,对于我们最求梦想的程序员来说,这种无聊的过程简直是一种折磨。于是,`Room` 也就应运而生了。它通过注解处理器的形式,将繁琐无趣的代码封装起来,我们只需要添加一个简单的注解,就可以完成一系列复杂的功能! 阅读全文
摘要:
今天我向大家介绍下 ViewModel 中如何使用 ViewModelProvider.Factory. 阅读全文
摘要:
单例模式在各个方面都有着极为广泛的使用,所谓单例,顾名思义就是整个程序中只有一个该类的实例,所以它成功保证了整个程序的生命周期内该类的对象只能创建一次,并且提供全局唯一访问该类的方法:getInstance() 阅读全文
摘要:
其实在我们日常的编程中,对于缩放手势的使用并不是很经常,这一手势主要是用在图片浏览方面,比如下方例子。但是(敲重点),作为 Android 入门的基础来说,学习 ScaleGestureDetector 的使用,算是不得不过的一道坎,好在 ScaleGestureDetector 使用起来非常简单,就是源码分析上得花些功夫。 阅读全文
摘要:
在 android 开发过程中,我们经常需要对一些手势,如:单击、双击、长按、滑动、缩放等,进行监测。这时也就引出了手势监测的概念,所谓的手势监测,说白了就是对于 GestureDetector 的用法的使用和注意要点的学习。注:由于缩放手势独有的复杂性,我打算后期将其单独拿出来归纳总结。 阅读全文