自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 24点游戏(A better solution)

接上一篇文章,这篇文章将介绍24点游戏的一种改进的编程方法,将减少枚举过程的冗余。思路是编程之美上的解法二,思想是集合和动态规划(set & DP),利用了子集的结果求出更大集合的解,最后求出整个集合上面的的所有表达式,再进行筛选。书上的文字解释写的不太清楚,需要结合伪代码看,所以在此就把书上的伪代码拷贝过来,再附上自己具体实现的C++代码,欢迎大家指正!伪代码如下:24Game(Arra

2012-08-06 00:58:12 700

原创 24点游戏(Naive solutions)

24点游戏大家都很熟悉,具体题目可以参考编程之美1.16(P100)。根据书上的描述,给玩家4张牌,每张牌的面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一个表达式,使其运算结果为24。输入:n1 n2 n3 n4输出:若能得到运算结果为24,则输出一个对应的运算表达式。对于这个问题

2012-08-06 00:44:13 736

原创 子数组之和的最大值

求子数组之和的最大值问题是一个比较常见面试题,具体看见编程之美P184,题号为 2.14。看编程之美上的解答有时候反而不利于理解,上面列出三种解法,时间复杂度分别是O(n^3),O(n^2)以及O(n)。其实线性时间复杂度(O(n))的解法思路比较直观,主要思想是动态规划(DP),即求出以a[i]结尾的子串之和的最大值,再求n个这样的最大的值的最大值。 求出以a[i]结尾的子串之和

2012-07-29 20:00:45 747 2

原创 数组最长递增子序列(Longest Increasing Sequence)

数组最长递增子序列(Longest Increasing Sequence)(下称LIS)是个比较常见的题目,算法导论和编程之美上都可以找到。网上也同样可以找到很多解答和思路,今天自己写了一遍,整理下思路,代码比较简洁,相信比较好理解。 求LIS的思路是动态规划(DP),但是不同的DP思路有着不同的时间复杂度,常见版本时间复杂度为O(n^2),优化的版本为O(n*logn)。优化版

2012-07-29 01:36:04 867 2

原创 一个建树的程序

在网上看到微软的一个面试题,自己写了一遍,虽然结果正确,但代码写的不太简洁,仅供参考:一个TXT文件,每一行代表一个树的节点,格式为:“/Node1/Node2/Num3/.../NodeN”,其中NodeN的格式为{KeyN, ValueN},Key和Value都是32位十进制的整形数字。如/{0, 100}/{2, 200}/{4, 400}写程序读取该文件,并建立树的数据结构。注

2012-07-27 20:43:08 538 2

空空如也

空空如也

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

TA关注的人

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