上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 31 下一页
摘要: 一、理论 1)首先,使用回溯算法关键是,将问题转化为 【树形问题】。 2)回溯的关键点: for循环、 递归。 for循环的作用在于另寻它路,可以逐个选择当前节点下的所有可能往下走下去的分支路径。 递归可以实现一条路走到黑和回退一步,把递归放在for循环内部,那么for每一次的循环,都在给出一个路径 阅读全文
posted @ 2020-11-22 21:27 不学无墅_NKer 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 一、理论 BFS用到队列,只有非递归写法。 应用到树时,不需要标记该节点是否走过。而应用到图结构时,需要标记某个节点是否已被访问过。 DFS需要用栈,有递归和非递归写法,推荐使用递归写法。 二、典型例题 ①:二叉树层次遍历(LC102、剑指22.从上往下打印二叉树) 方法1:树的BFS,需要用队列。 阅读全文
posted @ 2020-11-22 16:00 不学无墅_NKer 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 一、理论 贪心(Greedy)算法:在对问题求解时,总是做出在当前看来是最好的选择。 由于贪心算法每一次操作都需要取最大值或最小值,所以通常需要对数组排序。 适用Greedy 的场景: 问题能够分成子问题来解决,子问题的最优解能递推到最终问题的最优解。 如果不能使用贪心算法,只需要举出反例即可。 贪 阅读全文
posted @ 2020-11-21 21:46 不学无墅_NKer 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 一、理论 二、典型例题 ☆☆①:快速幂->实现计算x的n次幂函数(LC50、剑指12.数值的整数次方)【字节面试】 思路:采用分治的思想,时间复杂度为O(logn) class Solution { public double myPow(double x, long n) { // 方法1:递归 阅读全文
posted @ 2020-11-21 20:59 不学无墅_NKer 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、理论 二分搜索树: 1. 每个节点的键值大于左孩子; 2. 每个节点的键值小于右孩子; 3. 以左右孩子为根的子树仍为二分搜索树。 对于二分搜索树,要求掌握 插入、 查找、 删除 基本操作,以及 查找最大值、最小值; 给定一个数据,寻找前驱和后继,以及上界和下界 某个元素的排名rank 寻找第k 阅读全文
posted @ 2020-11-21 18:53 不学无墅_NKer 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 一、理论 Hash冲突及解决:关键字不同的元素映射到同样地址时会产生hash冲突,解决方法有:开放定址法(探测序列)、再哈希法、链地址法。 HashMap、HashSet >哈希表的查找、插入、删除的平均复杂度为O(1), TreeMap、TreeSet >二叉搜索树的查找、插入、删除的平均复杂度为 阅读全文
posted @ 2020-11-21 12:10 不学无墅_NKer 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一、实现机制 1. 堆Heap(Binary、Fibonacci) 对于堆的底层实现,要会白板编程。 2. 二叉搜索树(BST) 二、典型例题 ①:返回数据流中的第K大元素(LC703) class KthLargest { private int k; private PriorityQueue< 阅读全文
posted @ 2020-11-20 17:14 不学无墅_NKer 阅读(172) 评论(0) 推荐(0) 编辑
摘要: bat 批处理脚本是 Windows 系统上用于批量执行任务的脚本,后缀名为.bat 具体步骤: 1. 新建一个txt文本,后缀名改为.bat。然后右键选择使用记事本打开,编辑需要运行的命令行(可为多条) 2. 在当前路径下打开CMD命令行窗口,输入 start .\test.bat 3. 回车后, 阅读全文
posted @ 2020-11-20 10:00 不学无墅_NKer 阅读(3186) 评论(0) 推荐(0) 编辑
摘要: 一、栈和队列的特点,使用场景 栈(Stack)是限定仅在表尾进行插入和删除操作的线性表,后进先出。 队列(Queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表,先进先出。 二、代码实现 对于队列,LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Qu 阅读全文
posted @ 2020-11-19 21:47 不学无墅_NKer 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、数组 查找:O(1) 插入、删除:O(n) 二、链表 应用场景:1. 频繁插入和删除,链表优于数组。 2. 不知道有多少个元素需要添加。 查找:O(n) 插入、删除:O(1) 三、问答题 数组和链表的区别以及应用场景;假如有5万个数,有序,需要查找某一个数,问需要使用数组还是链表? 四、典型例题 阅读全文
posted @ 2020-11-19 19:44 不学无墅_NKer 阅读(128) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 31 下一页