随笔分类 - 数据结构与算法
摘要:动态规划 回顾 递归 +分治 +回溯 + 动态规划 找到最近的最简的解决方法,将其拆解成可重复解决的问题 递归代码模板 :Recursion public void recur(int level, int param) { // terminator 递归终止条件 if (level > MAX_
阅读全文
摘要:栈 先入后出 队列 先进先出 vector 想象成一个ArrayList,区别就是vector是线程安全的 Stack & Queue 关键点 Stack:先入先出;添加、删除皆为O(1) FILO stack是class Queue:先入先出;添加、删除皆为O(1) Queue是interface
阅读全文
摘要:回顾 单链表Linked List 查询 O(n)时间复杂度 如果要加速,关键在于升维 树 树和图(Graph)最关键的差别在于有没有环 有环就成了图 特殊情况下可以这样理解: Linked List是特殊化的树 Tree是特殊化的Graph 示例代码 Java public class T
阅读全文
摘要:数组、链表、跳表 Array Java, C++: int a[100]; Python: list = [] JavaScript: let x = [1, 2, 3] Java 里面是 ArrayList 直接访问任意一个元素时间复杂度都是O(1) Array 插入 、删除元素时间复杂度都是O(
阅读全文