卡特兰数
栈是一种常见的数据结构,有许多关于栈的问题,其中之一就是统计元素可能的出栈序列。具体说,就是给定n个元素,依次通过一个栈,求可能的出栈序列的个数。
如果我们用直接模拟的方法,当n较大时会很费时间;
例如动态规划。令f[i,j]表示栈内有i个元素且栈外有j个元素还未进栈,那么以进栈还是出栈为决策就马上得到了转移方程f[i,j]=f[i-1,j]+f[i+1,j-1]。如此一来,很...
分类:
其他好文 时间:
2014-06-11 06:29:56
阅读次数:
296
给定一个整数序列,求解一个子序列,子序列之和等于给定目标值。子序列满足以下条件:
1)子序列是有序的
2)子序列的元素个数不限,可以是给定元素的重复元素。
3)结果中的子序列是唯一的
原题描述如下:
Given a set of candidate numbers (C) and a target number (T), find all unique combinations ...
分类:
其他好文 时间:
2014-06-11 06:26:03
阅读次数:
302
Swift 提供两种集合类型来存储集合,数组和字典。数组是一个同类型的序列化列表集合。字典是一个能够使用类似于键的唯一标识符来获取值的非序列化集合。也就是说数组是有序的,字典是无序的。
一. 数组
和Objective-c中的NSArray不一样。swift的数组不仅可以包含对象,也可以包含非对象
1. 初始化
1) 对于单一确定类型的数组初始化...
分类:
其他好文 时间:
2014-06-11 06:02:02
阅读次数:
226
http://poj.org/problem?id=3270
大致题意:给出n个整数,要将它们转化成递增序列,每交换其中两个数的代价是这两个数之和。问排序成功后的最小代价。
该题考察的是置换群知识。在黑书p247上有详细的讲解。总结下置换群,方便复习。
群:给定一个集合G={a,b,c...}和集合G上的二元运算 ·,如果满足封闭性,结合律,存在单位元和逆元,则成集合...
分类:
其他好文 时间:
2014-06-11 06:01:26
阅读次数:
365
只需要冲定义该对象的
to_yaml_properties 方法, 只返回要序列化的字段就可以了
class A
attr_reader :a
attr_reader :b
def initialize(x,y)
@a = x
@b = y
end
end
a = A.new(1,3)
p a.to_yaml # => "--- !ruby/object:A...
分类:
其他好文 时间:
2014-06-10 15:54:19
阅读次数:
172
使用缓存的好处,这对于做过web开发的人员来说是很明了的。。
比如从数据库读取数据显示在前台为例,如果每次都调用数据库那么响应时间就会拉长。
如果我们给资源设置缓存,预先的把他们保存在缓存中,那么我们在程序中直接从缓存中读取资源,可以很好的提升游戏运行的效率;
在进入主场景以前,我们设置一个场景,其目的就是预先为资源设置缓存;
//精灵的序列帧缓存
SpriteFrameCa...
分类:
其他好文 时间:
2014-06-10 15:46:56
阅读次数:
198
一、循环语句
1. for循环
1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次
for a
in
0...5{}
//循环迭代,从a=0到a=5,执行{}里的代码
注意:a只循环中存在,也就是出了{}a就不存在了
或者遍历数组
...
分类:
其他好文 时间:
2014-06-10 15:28:39
阅读次数:
255
拓扑排序:(1)由偏序变成全序的过程!直观的说,偏序指集合中仅有部分成员之间可比较!而全序指集合中全体成员之间均可比较!
(2)将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。
数据结构中进行拓扑排序的方法:
方法一:
(1)在有向图中选一个没有前驱的顶点且输出之!
(2)从图中删...
分类:
其他好文 时间:
2014-06-10 14:22:43
阅读次数:
447
题目输出上次字符串中字符的个数和字符最终的序列如下:1, 11, 21, 1211,
111221,
...n=1时,输出字符串"1"n=2时,输出上次字符串中字符的个数和字符,因为上次字符串有1个1,所以输出11n=3时,由于上次字符是11,有2个1,所以输出21n=4时,由于上次字符串是21,有...
分类:
其他好文 时间:
2014-06-10 09:22:06
阅读次数:
185
1、使用调试工具确定段错误的位置;
当发生段错误时,执行的第一步操作应该是在调试器中运行程序并从重新产生段错误; 调试器将指出发生这种错误的代码行。
然后,可以通过调用调试器的反向跟踪(backtrace)功能获得其他有用信息。该功能显示导致调用引发错误的函数的调用序列;2、通过发出中断确定无限循....
分类:
其他好文 时间:
2014-06-10 09:16:05
阅读次数:
247