
数据结构与算法
文章平均质量分 76
劉俊
这个作者很懒,什么都没留下…
展开
-
ACM水题-迷宫(AC,DFS)
迷宫Time Limit:1000MS Memory Limit:65536KTotal Submit:127 Accepted:54 Description给出一个n*m的字符矩阵表示的地图,其中只包含4种字符'B' 'E' '.' 'X'。 'B'表示初始位置的格子,'E'表示终点位置的格子,'.'表示可以走的格子,'X'表示障碍物(即不可走的格子),请问是否存在一条路从初始原创 2012-05-14 13:57:54 · 1373 阅读 · 0 评论 -
ACM水题-合并果子(堆结构,贪心算法,AC)
合并果子Time Limit:1000MS Memory Limit:65536KTotal Submit:285 Accepted:112 Description在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过原创 2012-05-10 20:29:53 · 3952 阅读 · 0 评论 -
数组平衡点
放寒假前在浏览博客园的时候,看到别人博客中一道关于求解数组平衡点的题目,但是由于要考试复习,所以一直拖到现在才做:原博客地址:http://www.cnblogs.com/wanghonggang/archive/2013/01/13/2858962.html题目大意:数组平衡点一个序列的平衡点是这样的,它的左边的所有的元素的和应该等于右边的所有的元原创 2013-02-01 15:40:17 · 2871 阅读 · 0 评论 -
ACM水题-Rescue LK(AC,迷宫问题,DFS求解)
Rescue LKTime Limit:1000MS Memory Limit:65536KTotal Submit:83 Accepted:42 Descriptionziliang loves LK. But LK was kidnapped by Monster.oyy,and was put in a labyrinth.After thousands of hard原创 2012-05-13 17:05:01 · 2933 阅读 · 0 评论 -
ACM水题-算法普及课程(AC,区间问题)
算法普及课程Time Limit:1000MS Memory Limit:65536KTotal Submit:188 Accepted:54 Description在将来的某一天,ACM-ICPC在我们学校越来越受到重视了,大家对算法的学习热情非常高,学校决定每天都开设很多算法普及课,由于课程太多,学校没有太多的老师,于是学校派我们ACM集训队的成员去当小讲师。每个课程都有原创 2012-05-28 15:05:50 · 3038 阅读 · 3 评论 -
ACM水题-合法字符串 (AC,递归遍历,分情况,代码比较长)
合法字符串 Time Limit:1000MS Memory Limit:65536KDescription:一个合法的字符串是指最少含有一个元音字符和两个辅音字符的字符串。元音字符包括六个(a、o、e、i、u),其它小写字母都是辅音字符。现给你由多个小写字母组成的字符表,要你按字典序输出由这些字符表里的字母组成的所有长度为L的合法字符串。注:一个字符串里每个字母最多只能原创 2012-06-15 00:44:02 · 1574 阅读 · 0 评论 -
ACM水题-Beautiful Sequence(AC,杂题,贪心思想?)
Beautiful SequenceTime Limit:1000MS Memory Limit:65536KTotal Submit:206 Accepted:28 DescriptionA sequence of numbers A[1], A[2], ..., A[N] is beautiful only if each number A[i] ≥ i ( 1 ≤ i ≤原创 2012-05-27 19:12:10 · 1020 阅读 · 0 评论 -
为学论坛“每日一题”系列---最短的包含字符串(待验证正确性)
题目:给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母。如果无解输出-1。输入 串S长度 我的做法:大概做法和我之前做过的一题根本相同,参见这个:字符串的故事代码:#include#include#include#includeconst原创 2013-02-10 14:12:08 · 690 阅读 · 0 评论 -
字符串的故事(AC,代码有点长)
字符串的故事Time Limit:1000MS Memory Limit:65536KTotal Submit:272 Accepted:48 Description从前,有一串很长很长的字符串,它由n个小写字母组成。有一天它在照镜子的时候,觉得自己太肥了,于是它想减肥。减肥的时候,可以不断地去掉第一个或者最后一个字符。它希望自己减肥之后,对于小写字母a、b、c,自己身上都至少保原创 2012-04-02 09:49:48 · 1550 阅读 · 0 评论 -
二分查找,要注意的地方--写一个正确的二分查找,并不简单
原文地址:http://www.cppblog.com/converse/archive/2009/09/21/96893.html-----------------------------------二分查找的思想,大家都知道,但是要写出完整的二分查找,还是有几点需要注意的。在mid=(low+high)/2时,为了防止两个大数相加越界,我们可以使用 mid转载 2013-03-27 22:12:51 · 763 阅读 · 0 评论 -
《剑指Offer》读书笔记---面试题24:二叉搜索树的后序遍历序列
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。例如输入数组{5,7,6,9,11,10,8},则返回true,如果输入的数组是{7,4,6,5},则返回false。我的思路:由于之前看了那个重组二叉树的题目,所以很容易就想出类似的解法。一个二叉搜索树的后序遍历结果中,序原创 2013-04-11 21:51:59 · 832 阅读 · 0 评论 -
错误合集(2013-3-11更新)
今天将书上的一个实例程序实现的时候,发现问题多多。首先是书上的代码本来就有BUG,而且书上作者是抄袭中的渣渣,连抄袭也没有抄完全,再加上自己能力上的问题,在查错、发现问题、调试上花了很多时间。最令人蛋痛的是,有很多错误其实是已经错过很多次了,又或者根本不是什么技术性错误。为了更好地节省自己的时间,自己每犯一次错误就在这里记一次,总结一次,就算再忙也要。这里的错误都将以小标题的格式分开,原创 2012-02-21 19:54:37 · 2122 阅读 · 6 评论 -
程序员技术练级攻略
文章来自 coolshell.cn,11年的文章,如今依然非常受用。月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学转载 2013-07-04 00:35:33 · 1245 阅读 · 0 评论 -
《剑指Offer》读书笔记---面试题7:用两个队列实现栈
题目:用两个队列实现一个栈。队列的声明如下,请实现它的pop和push函数。思路:入栈动作时,如果内部两个队列都为空的话,将数据压入其中一个队列(代码中为m_queue1)。如果其中一个队列已经有数据了,则将数据压入已经有数据的那个队列。出栈动作时,先将有数据的那个队列,除了最后一个入队的数据之外的所有数据输出到另外一个空的队列,然后最后那个数据也出队。代码示例:#includ原创 2013-09-11 21:22:27 · 1457 阅读 · 0 评论 -
[综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区转载 2013-10-04 00:32:45 · 2063 阅读 · 0 评论 -
《剑指Offer》读书笔记---面试题28:字符串的排列,(扩展:求字符串的所有组合)
题目:输入一个字符串,打印出字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。书上的解法:#include#include#include#include#includevoid Permutation( char *pStr ) ;void Permutation(原创 2013-09-19 15:56:51 · 3339 阅读 · 0 评论 -
利用优先级队列解决k路归并问题
问题:把k个有序表合并成一个有序表。k个有序表总共有n个元素。解决思路(书上的):把每个表的的当前元素放入优先级队列中,每次从优先级队列中删除最小值并放入到新表中,然后加入入此序列的下一个元素。时间复杂度分析:每次操作需要logk时间,因此总共需要nlogk的时间。实现代码:#include#include#include#includeusi原创 2013-10-30 23:28:18 · 2049 阅读 · 1 评论 -
二叉树的非递归前序,中序,后序遍历算法
原博客地址:http://blog.chinaunix.net/uid-20551990-id-371961.html近期在看一些笔试面试题,发现很多题目涉及到树,而其中递归算法在解题中又显得特别重要,所以转了一篇文章用来查阅之用。#include #include struct tree{ char data; struct tree *lchild转载 2013-04-07 16:22:11 · 730 阅读 · 0 评论 -
《剑指Offer》读书笔记---面试题6:重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出二叉树并输出它的头结点。二叉树结点的定义为:struct BinaryTreeNode{ int m_nValue ; BinaryTreeNode*原创 2013-04-05 15:00:05 · 1032 阅读 · 0 评论 -
为学论坛“每日一题”系列---数字和字母的映射
题目:假设数字和26个字母一一对应,即1对应a,2对应b......26对应z,给定一个字符串,按字典序返回,它可能与哪些字母串对应。例如“11”可以对应为aa,k,ak,ka,输入:数字串返回:字典序的全部可与之对应的字母串。PS:不知道为什么,家里的网络又抽了,继不能上百度、VC驿站、hao123等网站之后,发现连为学论坛也不能上了,所以只能手打题目了,链接没法贴上原创 2013-02-12 17:32:42 · 1905 阅读 · 2 评论 -
求无序数组的(max+min)最大的子数组------为学论坛上面的一道面试题
原题目链接:http://www.51weixue.com/thread-398-1-1.html题目:杭州某公司的面试题,哪家可自己猜,不方便说;算是其中挺难的题了,当场能做出来的极少;出出来为论坛增点人气!求无序数组的(max+min)最大的子数组题目意思就是,给出一个无序的数组,均为正数,要找一个子数组,使得该子数组内的最小值加上最大值能取到最大。例子:原创 2013-03-04 16:57:50 · 1420 阅读 · 4 评论 -
为学论坛“每日一题”系列---删除所有的a,复制所有的b(待修改)
题目:给定一个字符串,请删除所有的字符a并且复制所有的b。要求:不要开辟新空间。其他字符顺序和个数保存不动。先贴我自己的代码,待最后修改再写思路。因为我的解法中只有当a的个数等于b的时候才会正确。当a >= b的时候,则会有a会留下来。(代码后附上我自己的测试数据)时间复杂度:O(2n)。虽然我的代码中的循环有三重循环,但是实际上我的程序最多只会遍历两次字符串。第一原创 2013-02-21 17:47:09 · 631 阅读 · 0 评论 -
为学论坛“每日一题”系列---最长连续子数组
给定一个整数数组,返回它其中最长的连续整数数列长度。例如 a[] = {100,4,200,1,3,2} 因为其中包含1,2,3,4所以返回4.原题链接:http://www.51weixue.com/thread-518-1-1.html我的做法:1、第一次遍历输出数组,获取必要信息,构造正整数A数组,负整数B数组。2、第二次遍历正整数B数组,求出正整数中原创 2013-02-25 19:14:26 · 1986 阅读 · 0 评论 -
ACM-奇怪的电梯(广度优先搜索、AC)
奇怪的电梯Time Limit:1000MS Memory Limit:65536KTotal Submit:19 Accepted:6 Description呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1Input 有多组测试数据!对于每组测试数据第一行为三个用空格隔开的正整数,表示N,A,B(1≤N≤200, 1≤A原创 2012-04-27 01:01:21 · 2727 阅读 · 0 评论 -
摘录-德问每周精选编程问答
前一阵子,在微博发现了一个叫做“德问”的编程问答网站,里面有不少有意思、值得思考的问题,也有让人叹为观止的解答。所以,自己想弄个博客长期记录,自己所关注领域的问题与解答。 下面的内容转自“德问:编程社交问答” 非精选,自己觉得有意思的: 1、deque的插入和删除操作会使迭代器失效么? 2、MinGw中GCC与G++的异同?3、Windows中,互斥转载 2012-11-29 00:53:42 · 983 阅读 · 0 评论 -
为学论坛“每日一题”系列---数列操作(我的解法有误)
原题目链接:http://www.51weixue.com/thread-678-1-1.html题目:给定一个长度为n的非负整数序列n输入:长度为n的数组 每个数是正整数输出:yes 或 no原来我的解法是错的。。。2 3 3 2,这个序列是可以消去的。。我的解法,大概就是类似于分治法的思想,将一个数列拆分一个一个小数列,再分别原创 2013-03-28 18:54:15 · 660 阅读 · 0 评论 -
《剑指Offer》读书笔记---面试题14:调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得偶数位于数组的后半部分。一开始我是想到快速排序的Partitation函数的,所以按照快速排序的形式写了一下:#include#includeconst int N = 100 ;void Partitation(int *A,int p,int r) ;int main(void){ int原创 2013-04-05 11:06:42 · 896 阅读 · 0 评论 -
《剑指Offer》读书笔记--面试题16:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义:struct ListNode{ int m_nValue ; ListNode* m_pNext ;} ;一开始我是先想到递归求解的:ListNode* ReverseLinkedList(ListNode *pListHead) { if(NULL == pListHea原创 2013-04-05 11:13:14 · 822 阅读 · 0 评论 -
写一下这些年看过的书(2014.7.31更新)
之前答应了啊牛要写一篇东西分享一下经验,但是却一直都没怎么动手。因为自己大学四年基本上都是摸着石头过河的感觉,也谈不上什么经验,所以也不知道自己可以写些什么。不过,后来受一位师兄的日志启发,觉得也可以分享一下自己看过的书,让师弟师妹参考一下,希望能起到一点帮助吧。 PS:水平有限,下面介绍的那些书完全是站着自己角度去写的,所以如有不妥的地方,请大家指正。 1、《C Prime原创 2014-07-06 01:18:57 · 2207 阅读 · 0 评论 -
C语言程序设计大赛题目两道
/*C语言程序设计大赛的第一题.*//*题目:找出一组数列(个数大于等于2)中长度最大的所有等值数列段,并指示其起始位置、末尾位置,如果没有等值数列段,则标志出特殊字句.(题目好像大概中这一个意思)所谓的等值数列段,比如数列:1 ,2 ,2 ,2 ,3 ,3 ,4.中的2,2,2和3,3就是所谓的等值数列段*//*我的想法:*//*要找出一组数列中的等值数列段,首先要考虑等值数列段有什么特征:起始位置、末位置以及长度.但是要同时找出并记录它的三个特征,我觉得用一两个变量应该是很难原创 2011-04-18 22:39:00 · 1936 阅读 · 0 评论 -
ACM-游玩景点(AC,动态规划,最大子序列和问题)
游玩景点Time Limit:1000MS Memory Limit:65536KTotal Submit:182 Accepted:35 DescriptionDieIng五一要去旅游,旅游区的景点道路分布如图:欣赏景点的道路为东西走向,每条道路有DieIng对它的喜爱值;南北走向为林间小道,供休息用。由于五一游客较多,旅游区规定欣赏景点的道路只能单向行走,自东向西原创 2012-05-14 13:37:19 · 1772 阅读 · 0 评论 -
ACM-Baby game of lala(MLE,图,广度优先搜索)
Baby game of lalaTime Limit:1000MS Memory Limit:65536KTotal Submit:200 Accepted:61 DescriptionDo you know teletubbies? They are four cute babies, who names: Dipsy, Po, Lala, and Tinky W原创 2012-06-09 00:07:59 · 860 阅读 · 0 评论 -
ACM-ACMICPC (AC,动态规划/遍历所有字串,三份代码)
ACMICPC Time Limit:1000MS Memory Limit:32768KDescription:大写字母A-Z分别对应整数[-13,12],因此,一个字符串对应了一个整数列。我们把字符串对应的整数列的和称为该字符串的特性值。例如:字符串ACM对应的整数列为{-13,-11,-1},则ACM的特性值为(-13)+(-11)+(-1)=-25;其子串AC的特原创 2012-06-13 23:43:40 · 1028 阅读 · 0 评论 -
ACM-Position Arrangement (解题报告)
Time Limit:1000MS Memory Limit:32768KDescription:一个01串,我们可以对相邻两个字符实行交换位置的操作. 求最少的操作次数使得所有的1的位置连续. eg. s="010110",swap(s[1],s[2])之后,变成"001110". 所以答案是1.Input:多组数据,每组数据一个01字符串.串长不超过10^5O原创 2012-07-04 01:48:37 · 1036 阅读 · 0 评论 -
别人的课程设计:哈夫曼树
#include#include#include#define MAX_Node_num 30typedef struct{ char elem; unsigned int weight; unsigned int parent,lc,rc;}HTNode,*HuffmanTree;typedef char ** HuffmanCod转载 2012-06-23 09:02:01 · 1124 阅读 · 0 评论 -
ACM-Giroro的地雷测试(AC,广度优先搜索)
Giroro的地雷测试Time Limit:1000MS Memory Limit:65536KTotal Submit:1 Accepted:0 Description为了早日完成侵略蓝星的使命,Giroro最近新入手了一批地雷。为了测试地雷的可爆性(旁白:有这性质的?),Giroro在一些地方埋下了地雷,并让Tamama射出Tamama冲击波来引爆这些地雷。因为Tamama冲原创 2012-05-02 20:29:14 · 1174 阅读 · 0 评论 -
区分给定序列为合法序列
/* ---------------------------------------------------------------------- 假设以S和X分别表示入栈和出栈的操作,则初态和终态均为栈空的入栈和出栈的 操作序列可以表示为公由S和X组成的序列。称可以操作的序列为合法序列 (例如,SXSX为合法序列,SXXS为非法序列)。试给出区分给定序列为合法序列 或者非法序列的原创 2012-04-18 00:34:35 · 1338 阅读 · 0 评论 -
数据结构应用-------------多项式的相加
/*---------------------------------------------------------------------------------- 程序说明: 这一个程序是《数据结构》这本书上面的例子来的。 功能是实现两个多项式的相加。原创 2011-08-04 21:17:16 · 1318 阅读 · 0 评论 -
数据结构应用-----------括号匹配的检验
/*---------------------------------------------------------------------------------- 括号匹配程序 程序说明: 括号匹配的检验。 假设表达式中允许包含两种括号:圆括号和方括原创 2011-08-05 17:19:31 · 4206 阅读 · 0 评论 -
数据结构的应用------------迷宫求解
/*------------------------------------------------------------------------ 程序说明:迷宫求解 用栈实现迷宫寻找一条可行的路径 ---------------------------原创 2011-08-14 17:15:11 · 1933 阅读 · 1 评论