编程之美
文章平均质量分 79
youwuwei2012
这个作者很懒,什么都没留下…
展开
-
编程之美------2.5 寻找最大的K个数
今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解转载 2014-07-28 11:04:08 · 558 阅读 · 0 评论 -
编程之美------3.1 字符串移位包含的问题
给定两个字符串s1和s2,要求判定s2能否能被s1做循环移位得到的字符串包含。例如,s1=AABCD,s2=CDAA,返回true,给定s1=ABCD,s2=ACBD,返回false。思路1:找出所有循环移位,逐个进行字符串匹配。n*字符串匹配的复杂度。kmp可以做到线性,因此总的复杂度为n^2.思路2:s1复制一下,变成s1s1,如s1=ABCD,变成ABCDABCD转载 2014-07-30 09:09:36 · 466 阅读 · 0 评论 -
编程之美------3.8 求二叉树中节点的最大距离
昨天花了一个晚上为《编程之美》,在豆瓣写了一篇书评《迟来的书评和感想──给喜爱编程的朋友》。书评就不转载到这里了,取而代之,在这里介绍书里其中一条问题的另一个解法。这个解法比较简短易读及降低了空间复杂度,或者可以说觉得比较「美」吧。问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点转载 2014-07-30 11:35:16 · 477 阅读 · 0 评论