编程之美
文章平均质量分 66
IT路上的苦行僧
这个作者很懒,什么都没留下…
展开
-
游泳圈的怪胎--最大子矩阵和
游泳圈的最大子矩阵和 Description二维数组首尾相连,上下也相连,像个游泳圈或轮胎,又如何求最大子矩阵和?如游泳圈展开成3行3列的二维矩阵:-18 10 71 -20 21 38 -2那么最大的子矩阵和为:10+7+38-2=532 10 71 -20 21 38 -2那么最大的子矩阵和为:10+7+2+38-2+1=56转载 2013-05-16 09:21:18 · 1442 阅读 · 0 评论 -
二分查找需要注意的问题,以及在数据库内核中的实现
转于http://blog.csdn.net/overstack/article/details/8812159问题背景 今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目。题目大意如下: 给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7,7]。问题:给定任意自然数,对数组进行二分查找转载 2013-05-29 15:48:53 · 1587 阅读 · 0 评论 -
计算字符串的相似度--编程之美3.3
转载于 http://www.cnblogs.com/yujunyong/articles/2004724.html许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把“a”替换为“b”); 2.增加一个字符(如把“abdd”变为“aebdd”); 3.删除转载 2013-05-30 21:04:33 · 525 阅读 · 0 评论 -
模线性方程
模线性方程 #include #include typedef struct _EUCLID_ITEM{ int d; int x; int y; /* _EUCLID_ITEM(int arg1,int arg2,int arg3){ d=arg1;x=arg2;y=arg3; }*/}EUCLID_ITEM;EUCLID_ITEM原创 2013-05-30 14:06:11 · 408 阅读 · 0 评论 -
重建二叉树
浙大重建二叉树题 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1944#include #include #include #define _DEBUG 0#define MAX_C 26typedef struct Node{ struct Node* pLeft; struct Node* pR原创 2013-05-31 11:49:25 · 498 阅读 · 0 评论 -
瓷砖覆盖地板
转载于 http://www.2cto.com/kf/201208/146894.html状态压缩动态规划 POJ 2411编程之美的课后题也有一个和整个题目一样的。(P269)题目这个题目的题意很容易理解,在一个N*M的格子里,我们现在有两种类型的 砖块,1 * 2 和 2 * 1,问一共有多少种方案,可以将整个N*M的空间都填满。最简单的例子就是下面的了:编程之美中题目转载 2013-06-05 17:35:25 · 630 阅读 · 0 评论 -
编程之美2.18——数组分割
转载于 http://blog.csdn.net/linyunzju/article/details/7729774问题:1. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为两个子数组,子数组的元素个数不限,并使两个子数组之和最接近。2. 有一个无序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组之和最接近。转载 2013-06-16 11:46:37 · 478 阅读 · 0 评论 -
买票找零
一,问题:n个拿着1元,n个人拿着2元去买票。票价一元,且售票元只能用n个人购票的一元给2元的找零。问有几种排列方法 分析:卡特兰数方法 递推公式:F(2*n) =F(0)*F(2(n-1)) +F(1)*F(2(n-2))+……+F(2(n-1))*F(0)转载 2013-06-07 21:55:47 · 1211 阅读 · 1 评论 -
金刚坐飞机问题
转载于 http://jarfield.iteye.com/blog/1798180文章背景编程之美 4.1 “金刚坐飞机问题”的问题2,难度比问题1大很多。编程之美的官方解法,包括原理分析、概率公式、推导过程等,感觉阐述不够详细,没有完全读懂。搜索一下 “金刚坐飞机”,参考了几个很不错的分析,得到一个自己觉得比较完整的答案。 仔细审题 首先,仔细审题,有两转载 2013-06-27 16:48:17 · 814 阅读 · 0 评论 -
快速寻找满足条件的两个数(编程之美)
快速找出一个数组中的两个数,让此两个数之和等于一个给定的数。如:5 6 1 4 7 9 8 中找出两个数之和等于10的数编程之美之美P177有详细解答过程,思路是先排序(O(nlog(n)),然后保存两个指针beg、end,初始指向头部和尾部,如过*beg+*end==sum,则返回;如果*beg+*end>sum则向前移动end;*beg+*end扩展问题:1、快速找出一个数组中原创 2013-08-19 00:23:08 · 820 阅读 · 0 评论 -
《编程之美:分层遍历二叉树》的另外两个实现
转载于 http://www.cnblogs.com/miloyip/archive/2010/05/12/binary_tree_traversal.html问题定义给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子:输出:12 34 5 67 8转载 2013-05-28 23:01:45 · 423 阅读 · 0 评论 -
求数组的子数组之和的最大值 .
转自:http://blog.csdn.net/v_JULY_v/article/details/6444021题目描述:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -转载 2013-05-14 15:19:07 · 645 阅读 · 0 评论 -
【编程之美】区间重合判断
http://blog.csdn.net/tianshuai11/article/details/7828961http://blog.csdn.net/ididcan/article/details/7985583将区间按照x来排序(递增),然后依次判断目标区间的起始位置是否在这些区间上,例如判断区间 [a,b] 是否在区间 [c,d] , [e,f]之中,我们可以分析c d,e f的关转载 2013-05-17 13:59:25 · 744 阅读 · 0 评论 -
字符串相似度算法介绍
转载于 http://blog.sina.com.cn/s/blog_53e1c1230100bpe1.html字符串相似度算法介绍 1.编辑距离(Levenshtein Distance) 编辑距离就是用来计算从原串(s)转换到目标串(t)所需要的最少的插入,删除和替换的数目,在NLP中应用比较广泛,如一些评测方法中就用到了(wer,mWer等),同时也常用来计算你对原转载 2013-05-18 14:49:55 · 612 阅读 · 0 评论 -
最短摘要生成
转自 http://blog.csdn.net/bertzhang/article/details/7278728题目:抽象点说,就是在一个字符串中,找一些目标字符串,找到包含所有目标字符串的最小字符串。题目虽然叫做最短摘要生成,但和实际的搜索snippet的计算还是有比较大的差距的。解法:文献[1]给出了一种比较好的解法,策略还是使用双指针,双指针对于很多算法设计很有价值,算法的思想是采转载 2013-05-19 09:45:38 · 504 阅读 · 0 评论 -
判断两个链表是否相交
转于 http://blog.163.com/song_0803/blog/static/4609759720120910373784/给出两个单向链表的头指针,判断这两个链表是否相交,如果相交给出相交的第一个结点一、两个链表均不含有环链表相交如下图 方法一:直接法 直接判断第一个链表的每个结点是否在第二个链表中,时间复杂度为O(len1*len2),耗时很大转载 2013-05-20 10:13:13 · 644 阅读 · 0 评论 -
《编程之美: 求二叉树中节点的最大距离》的另一个解法(觉得比书上的好)
《编程之美: 求二叉树中节点的最大距离》的另一个解法问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。书上的解法书中对这个问题的分析是很清楚的,我尝试用自己的方式简短覆述。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点,通转载 2013-05-24 22:12:18 · 663 阅读 · 0 评论 -
编程之美2.10扩展问题求数组中第二大数
转载于 http://blog.csdn.net/zhanglei0107/article/details/7307210要求求得数组中第二大数采用分治思想解决这个问题#includeusing namespace std;//分治思想求数组中第二大的数//low为数组低位索引,high为数组高位索引void search(int *a,int low,int hig转载 2013-05-12 10:26:25 · 1035 阅读 · 1 评论 -
Fibonacci数计算中的两个思维盲点及其扩展数列的通用高效解法
http://www.cnblogs.com/flyinghearts/archive/2012/02/28/2372530.html㈠ Fibonacci数刚接触Fibonacci数的时候,在网上看到“矩阵法”,看到要先实现一个矩阵乘法,感觉太麻烦了。后来仔细观察Fibonacci数列,发现有下面的规律:F(n) = F(k)*F(n+1-k) + F(k-1)*F(n-k)转载 2013-05-11 21:20:17 · 559 阅读 · 0 评论 -
编程之美之寻找最近点对
转载于 http://sxnuwhui.blog.163.com/blog/static/137068373201264104915935/?COLLCC=3097019025&COLLCC=3097019024&在二维平面上的n个点中,如何快速的找出最近的一对点,就是最近点对问题。 一种简单的想法是暴力枚举每两个点,记录最小距离,显然,时间复杂度为O(n^2)。 在转载 2013-05-12 10:45:23 · 2889 阅读 · 0 评论 -
编程之美 2.14 数组的子数组之和的最大值 扩展题2
#include #include #include #define MAX 20int main(){ int n,i; int a[MAX]; freopen("214.in","r",stdin); while(scanf("%d",&n) && n!=0){ memset(a,0,sizeof(a)); for(i=0;i<n;++i)原创 2013-05-13 10:41:28 · 565 阅读 · 0 评论 -
Fractions to Decimals && 精确表达浮点数
1、Fractions to Decimals(USACO 2.4)Write a program that will accept a fraction of the form N/D, where N is the numerator and D is the denominator and print the decimal representation. If the decimal原创 2013-09-18 17:15:37 · 736 阅读 · 0 评论