算法基础
文章平均质量分 53
奈奈酱
爱怎么样
展开
-
卡特兰数(Catalan)相关问题
卡特兰数重要公式一Cn2n−Cn+12n=1n+1Cn2nC^n_{2n}-C^{n+1}_{2n}=\frac{1}{n+1}C_{2n}^n应用例题假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n=1时,()是合法的,但是)(为不合法。 给定一个整数n,请返回所求的合法排列数。保证结果在int范围内。2n个人排队买票,n个人拿5块钱,n个人拿10原创 2015-11-05 22:33:17 · 434 阅读 · 0 评论 -
希尔排序和归并排序
这是都需要算gap的排序算法 希尔排序的gap是越来越小的 而归并排序的gap是越来越大的例子:假如有11个数 希尔排序的顺序是 gap=11/2=5(0、5、10)(1、6)(2、7)(3、8)(4、9) gap=5/2=2 (0、2、4、6、8、10)(1、3、5、7、9) gap=2/2=1 (1、2、3、4、5、6、7、8、9、10)归并排序的顺序是 gap=2原创 2015-10-30 23:12:46 · 1353 阅读 · 0 评论 -
讨厌的堆排序
堆排序的定义:利用大根堆或小根堆(都属于完全二叉树)这种数据结构所设计的一种排序算法,它是选择排序的一种。时间复杂度:平均:O(nlogn) 最快:O(nlogn) 最慢:O(nlogn)空间复杂度:O(1)完全二叉树的特点:1、 一个完全二叉树的形式一定是这样:2、如果第一个根结点的深度为1,编号为0号那么一个深度为i的满二叉树,它的节点数为2^i-1;那么每一层的节点数为原创 2015-10-30 22:24:37 · 292 阅读 · 0 评论 -
表达式的合法判断
表达式合法判断写一段代码,判断一个包括’{‘,’[‘,’(‘,’)’,’]’,’}’的表达式是否合法(注意看样例的合法规则。) 给定一个表达式A,请返回一个bool值,代表它是否合法。 测试样例: “[a+b*(5-4)]{x+b+b({1+2)}}” 返回:true 测试样例: “[a+b*(5-4)]{x+b+b(({1+2)}}” 返回:falseclass ChkExpress原创 2015-10-30 16:12:58 · 2053 阅读 · 0 评论 -
乘坐公交
一、题目从小明家所在公交站出发有n路公交到公司,现给出每路公交的停站数(不包括起点和终点),及每次停的时间(一路车在每个站停的时间相同)和发车的间隔,先假定每辆车同时在相对时间0分开始发车,且所有车在相邻两个站之间的耗时相同,都为5分钟。给定小明起床的相对时间(相对0的分钟数),请计算他最早到达公司的相对时间。给定每路车的停站数stops,停站时间period,发车间隔interval及公交路数n,原创 2015-10-31 21:57:20 · 559 阅读 · 0 评论 -
词语变形练习题
一、题目对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。 给定两个字符串A和B及他们的长度,请返回一个bool值,代表他们是否互为变形词。测试样例:输入:”abc”,3,”bca”,3 返回:true 二、解题要点:1. ASCII码ASCII码使用指定的7位或8位二进制数组合来表示128或256种原创 2015-10-31 20:39:18 · 557 阅读 · 0 评论 -
拓扑结构相同子树练习题
一、题目对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。 给定两棵二叉树的头结点A和B,请返回一个bool值,代表A中是否存在一棵同构于B的子树。二、2种思路1、比对A树根结点与B树,不对再比对左孩子与B树,不对再比对左孩子的左孩子和B树…… 2、将2个二叉树遍历成字符串形式str1、str2,如果str1中包含str2,就返回true。三、原创 2015-10-31 17:58:52 · 541 阅读 · 0 评论 -
详解又详解KMP中的next和nextval的算法
一、定义KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。二、图解原理以下借用http://www.cnblogs.com/c-cloud/p/3224788.html的部分内容 这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到这篇文章,我才真正理解这种算法。原创 2015-10-23 22:18:52 · 26578 阅读 · 12 评论 -
深度遍历和广度遍历图解
第1个图的解为深度优先:ABCFEDGHI广度优先:ABDECGFHI第2个图的解为深度优先:ABCFEDGHI广度优先:ABDECGFHI第三个图的解为深度优先:ADEHGIFCB广度优先:ADEHIGFCB原创 2015-10-23 13:32:48 · 2058 阅读 · 0 评论 -
最大无重复字母子串
一、题目对于一个字符串,请设计一个高效算法,找到字符串的最长无重复字符的子串长度。 给定一个字符串A及它的长度n,请返回它的最长无重复字符子串长度。保证A中字符全部为小写英文字符,且长度小于等于500。测试样例:“aabcb”,5 返回:3二、解题思路设立一个hash表记录每个字母前一次出现的坐标;设立一个pre数组记录字符串到该字母为止,包含该字母可以取得的最大不重复字符串。例: 标原创 2015-11-01 22:12:48 · 487 阅读 · 0 评论