• 时间频度 算法的时间复杂度 常见的时间复杂度 注意 时间复杂度怎么理解呢 如果一段程序不会因为变量的规模而使得执行次数发生变化 那么时间复杂度就是O 1 比如下面这个代码就不会因为i 200000就会使得代码的执行次数变多 平均时间复杂度和
  • 创建队列 塞值和拿值 当我们创建一个LinkedList的时候 就可以用来模拟队列 因为该集合里有大量操作首尾元素的方法 之后就可以在该队列里进行数据的添加和获取 但是当我们使用数组来实现时 如何创建一个队列呢 最大值怎么确定 首尾初始值怎
  • 先激励激励自己 数据结构是指组织数据的方式 它是算法的基础 线性结构和非线性结构 线性结构 是一个有序数据元素的集合 它应该满足下面的特征 集合中必存在唯一的一个 第一个元素 集合中必存在唯一的一个 最后的元素 除最后一元素之外 其它数据元
  • 最小生成树算法 普利姆算法代码参考 https blog csdn net tingting256 article details 50471033 具体如何判断是否构成回路 举例说明 克鲁斯卡尔算法代码参考 https blog csdn
  • 递归 程序调用自身的编程技巧称为递归 recursion 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模 较小的问题来求解
  • 动态规划的核心思路 动态规划的解题核心主要分为两步 第一步 定义问题 有的问题过于抽象 或者过于啰嗦干扰我们解题的思路 我们要做的就是将题干中的问题转化成一系列同类问题的某个解的情况 比如说 题目 求一个数列中最大连续子序列的和 我们要将这
  • 当一个二维数组中的无效数据远远大于有效数据时 可以将这个二维数组转换成一个新的数组 达到压缩内存的目的 而这个新的数组就叫做稀疏数组 说明 这里的无效数据通常是指0或者其它许多相同的数据 是稳定的 默认的 比如 0 0 0 0 0 0 0