摘要: 一、理论 贪心(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) 编辑