自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Silver

回收点滴 重出江湖

  • 博客(5)
  • 收藏
  • 关注

原创 卡特兰数(Catalan)

问题《编程之美》中提到了“买票找零”问题,查阅了下资料,此问题和卡特兰数Cn有关,其定义如下:卡特兰数真是一个神奇的数字,很多组合问题的数量都和它有关系,例如:1.     Cn = 长度为2n的Dyck words的数量。Dyckwords是由n个X和n个Y组成的字符串,并且从左往右数,Y的数量不超过X,例如长度为6的Dyck words为:XXXYYY     XY

2013-07-01 19:51:05 550

原创 数组分割

问题一个2n的整数数组,分成n元素两组,保证两组和之差的绝对值最小,设计算法,保证两组和之差的绝对值最小。分析在2n个整数,计算1~n级情况,规则为“求和”。解法一使用n个哈希表来保存每一级所有的和情况,以排除重复:for (int k = 1; k <= 2 * n; k++)//计算依次拿出1、2、3...个元素的情况{    var m = Math.Min(

2013-06-29 23:28:49 435

原创 C++ or C#?

面对诸如:“C++效率更高,越底层越厉害,C#是微软想把大家变笨的诡计(只会搭积木)”的争议,我有一些想法,在发表之前,首先提及想到几句话:1.     当年C++出现的时候,存在“汇编效率更高,越底层越厉害,应该用汇编”的争议…2.     如果说伟大的科学是“站在巨人肩膀上的巨人“,那么软件行业有点像是“站在侏儒脚上的侏儒…”3.     一部伟大的文学著作,是以复杂的语法炫耀

2013-06-29 12:01:36 663

原创 一种简单而神奇的算法思路:分级组合(排列)法

在琢磨一些算法题的过程中,发现很多题目其实可以用同一种思路去解决:假设有n个元素数组,挨个取出所有元素,计算当取出0个,1个,2个…n个元素的情况下,数组中任意0个,1个,2个…n个元素所能组合(或排列)出的情况(或个数)。例如:求1,2,3这几个数求和能得到的数字:0级: 01级: 1,2,32级: 3,4,53级: 6取出元素

2013-06-29 11:47:27 1044

原创 快速排序的两重递归实现

发现快排的内部还可以多抽象一重递归:找到一个需要交换的位置来和哨兵交换(正向找和反向找不停切换)。 static void Sort(IList v, int l, int r) where T : IComparable { int i = l, j = r; Swap(v, ref i, ref j, v[l

2013-06-27 18:38:14 430

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除