
数据结构和算法
文章平均质量分 54
movYou521
这个作者很懒,什么都没留下…
展开
-
【数据结构】二叉树
2 对称二叉树3 二叉树的最大深度4 从前序与中序遍历序列构造二叉树5 二叉树的层序遍历6 是否是平衡二叉树7 路径总和8 路径总和 II9 是否是二叉搜索树原创 2022-06-26 14:04:51 · 314 阅读 · 1 评论 -
【数据结构】位运算
位图的功能:如果一个数字大小是确定的,可以使用一个数字集合收集数字,告知这个数字是否存在(位 1 存在,位 0 不存在)。位图的好处:极大的压缩空间位图的实现:原创 2022-06-25 17:09:22 · 324 阅读 · 0 评论 -
【数据结构】链表
2 链表实现队列和栈3 双端队列4 K 个节点组内逆序调整5 两个链表相加6 两个有序链表的合并原创 2022-06-25 11:27:29 · 292 阅读 · 0 评论 -
【数据结构】二分法
2. 有序数组中找到 >=num 最左的位置3. 有序数组中找到 >=num 最左的位置4. 局部最小值问题1)数组第一个元素比第二个元素小,即为局部最小值。2)数组最后一个元素比它前一个元素小,即为局部最小值。3)若不满足,那么局部最小值必可在数组首尾两元素之间的某个位置取得。此时可以采用二分法思想,看中间位置是否符合条件,不符合就分成两部分,从不符合的那一边继续操作。...原创 2022-06-21 20:19:08 · 463 阅读 · 0 评论 -
【数据结构】随机函数
Math.random 函数以等概率返回 [0, 1) 的值。等概率返回 [0, k) 的值返回 x^2 的概率返回 1 - (1 - x)^2 的概率2. 0 - 1 发生器问题:由 1 - 5 等概率函数得到 1 - 7 等概率函数首先由 1-5 随机写出 0-1 随机发生器(将 3 概率等分给1 2 和 4 5,1 2 为 0,4 5 为 1),7 的二进制数为 111,所以写出 01 随机后根据三位二进制数随机得到 0-7,强制将为 7 的结果均匀分给其他结果(0-6)等到 0 - 6 发原创 2022-06-19 15:37:58 · 272 阅读 · 0 评论 -
【数据结构】计算给定数组 n - m 范围的和
问题:查询给定数组 [1, 2, 3, 4] 的 n~m 范围内的和?直接算的话我们可以遍历 n ~ m 求和,如果查询次数很频繁的话,就会消耗大量的时间,因此我们可以设计一个数据结构进行预处理。采用 4 * 4 矩阵存储,直接将 n 到 m 的值全部计算出置入二维数组,需要用到直接取。此法会存在 n * n / 2 大小的空间浪费,并且建立该表示时间消耗大。采用前缀和方式存储,采用一维数组的方式存储,实际上就是上述矩阵的第一行,该一维数组中存储的是从 0 到 n 的累加值,当咱们需要取从 n 到 m 的累原创 2022-06-19 11:41:00 · 224 阅读 · 0 评论 -
【恋上数据结构和算法】算法复杂度
文章目录1. 什么是算法2. 如何评判一个算法的好坏3. 大O表示法(Big O)4. 对数阶的细节5. 常见的复杂度6. fib函数的时间复杂度分析7. 算法的优化方向8. 多个数据规模的情况1. 什么是算法算法是用于解决特定问题的一系列的执行步骤,比如以下代码。/** * 计算 a 和 b 的和 */public static int plus(int a, int b) { return a + b;}/** * 计算 1 + 2 + 3 + ... + n */p原创 2021-06-22 23:22:42 · 271 阅读 · 2 评论