
算法与数据结构
文章平均质量分 63
qq632544991p
喜爱计算机
展开
-
字符串算法
一、字符串循环左移给定一个字符串S[0...N-1],要求把S的前k个字符串移动到S的尾部1)循环左移n+k位和k位效果相同2)循环左移k位等价于右移n-k位算法要求:时间复杂度为O(n),空间复杂度O(1)暴力移位时间复杂度O(N),空间复杂度O(k)三次移位时间复杂度O(N),空间复杂复O(k)优雅的算法(X‘Y’)‘=YX原创 2016-05-13 12:30:36 · 318 阅读 · 0 评论 -
斐波那契数列及其应用
定义:斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368特别指出:第0项是0,第1项是第一个1。这个数列从第2项开始,每一项都等于前两项之和。常规解法long long原创 2016-05-26 18:50:58 · 822 阅读 · 0 评论 -
ACM基本输入输出
在开始做ACM时,会面临一个输入输出数据的问题,ACM里的输入输出数据和平时的写程序不大一样。为什么会不一样呢,这就牵涉到评测系统怎么判断你提交的程序是正确的。实际上评测系统是把程序的标准输入输出数据都是放在文本文件里,你提交的程序会先经过编译,然后运行,从输入文件中读取数据,然后把结果输出到一个文本文件中,评测系统再把标准的输出文件和你提交的程序运行的结果的输出文件进行对比,从而判断你提交的程序转载 2016-05-14 10:59:07 · 370 阅读 · 0 评论 -
八皇后问题
八皇后问题,是一个古老而著名的问题。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种计算机语言可以解决此问题。思路对原创 2016-05-06 16:32:29 · 973 阅读 · 0 评论 -
重构二叉树
对于一颗二叉树,可以根据先序遍历(后序遍历)和中序遍历重新还原出二叉树。根据先序遍历和中序遍历还原二叉树的主要思想:1、先序遍历序列的第一个元素必定是根节点,可以由此获取二叉树的根节点。2、根据根节点,在中序遍历序列中查找该节点,由中序遍历的性质可知,中序遍历中该根节点左边的序列必定在根节点的左子树中,而根节点右边的序列必定在右子树中。由此可以知道先序遍历中左子树以及右子树转载 2016-05-31 10:44:29 · 358 阅读 · 0 评论 -
用两个栈实现队列
题目:用两个栈实现一个队列。队列的的声明如下,请实现它的两个函数appendTail和deleteHead,分别在完成队列尾部插入节点和在队列头部删除节点的功能。template class Cqueue{public:CQueue(void);~CQueue(void);void appendTail(const T& node);T deleteH原创 2016-06-02 22:42:08 · 263 阅读 · 0 评论 -
集合框架的讲解--面试常问问题
众所周知在我们使用Java中的类的存储的时候经常会使用一些容器,链表的概念,本文将彻底帮您弄清链表的各种概念和模型!!!! 注意理解哦~~~ 大致框架如下: Collection接口有两个主要的子接口List和Set,注意Map转载 2016-08-24 20:06:50 · 468 阅读 · 0 评论