抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一些经典模拟题

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

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

和贪心的区别在于:

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

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

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

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

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

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

计算机采用的是二进制,二进制包括两个数码:0,1。在计算机的底层,一切运算都是基于位运算实现的。

位运算共有 6 种,分别是:与、或、异或、取反、左移和右移,其中左移和右移统称移位运算,移位运算又分为算术移位和逻辑移位。

上述位运算中,只有取反是一元运算,其余的都是二元运算。

二分查找也称折半查找,它是一种效率较高的查找方法。

二叉树遍历主要包括:

  • 深度优先遍历
    • 前序遍历(递归法,迭代法)
    • 中序遍历(递归法,迭代法)
    • 后序遍历(递归法,迭代法)
  • 广度优先遍历
    • 层次遍历(迭代法)

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

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



Modify from Volantis theme Powered by Hexo