2013年3月3日

统计1到N之间所有十进制数中数字1的个数。

摘要: 这是一道十分有趣的题,例如N为12的时候,输出是5,因为从1到12,总共有1,10,11,12中包含数字1,总共是5个。最傻逼的办法当让是直接枚举,即N^2的方法,对于小数据,是可以容忍的,但是此题中N最大可以达到2^30次方,因此该方法不行。我觉得这一题更偏数学一点,只要找到了递推公式,变成是非常简单的。我们用part1来表示1-99..99中所包含的1的个数1-9中有只有1一个1-99总共有20个递推公式很容易得到,part1[n] = part1[n-1]*10 + 10^(n-1),其中N表示9的个数。对于N,我们从N的个位数开始往高位递推。如下图所示假设我们已经进行到n位,我们用pa 阅读全文

posted @ 2013-03-03 19:27 civi 阅读(932) 评论(0) 推荐(0)

PAT 1020 Tree Traversals

摘要: 这一题应该也算是简单题了了解有关树的知识,就很容易做出来,题目描述:Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.Input Specification:Each input file contain 阅读全文

posted @ 2013-03-03 19:24 civi 阅读(487) 评论(0) 推荐(0)

导航