模拟题
排序

排序

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

阅读更多
动态规划

动态规划

动态规划(Dynamic Programming,简称DP),如果某一问题有很多重叠子问题,使用动态规划是最有效的。

和贪心的区别在于:

  • 动态规划中每一个状态一定是由上一个状态推导出来的
  • 贪心没有状态推导,而是从局部直接选最优的,
阅读更多
回溯算法

回溯算法

回溯的本质是穷举,穷举所有可能,然后选出想要的答案,如果想让回溯法高效一些,需要进行剪枝操作。

回溯法,一般可以解决如下几种问题:

  • 组合问题:N个数里面按一定规则找出k个数的集合
  • 切割问题:一个字符串按一定规则有几种切割方式
  • 子集问题:一个N个数的集合里有多少符合条件的子集
  • 排列问题:N个数按一定规则全排列,有几种排列方式
  • 棋盘问题:N皇后,解数独等等

组合不强调元素顺序,排列强调元素顺序

即 不同顺序的同样元素集合 算作排列,但不算组合

阅读更多
Binary Search 二分查找
二叉树遍历

二叉树遍历

二叉树遍历主要包括:

  • 深度优先遍历
    • 前序遍历(递归法,迭代法)
    • 中序遍历(递归法,迭代法)
    • 后序遍历(递归法,迭代法)
  • 广度优先遍历
    • 层次遍历(迭代法)
阅读更多
KMP 算法

KMP 算法

KMP主要应用在字符串匹配上。

KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。

阅读更多

取次花丛懒回顾,半缘修道半缘君。

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×