![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程算法
文章平均质量分 53
黎嫣
人总要有个梦想,万一实现了呢?
展开
-
最短摘要生成
题目:抽象点说,就是在一个字符串中,找一些目标字符串,找到包含所有目标字符串的最小字符串。题目虽然叫做最短摘要生成,但和实际的搜索snippet的计算还是有比较大的差距的。 解法:编程之美3.5给出了一种比较好的解法,策略还是使用双指针,双指针对于很多算法设计很有价值,算法的思想是采用两个指针,开始两个指针都指向缓冲区的头部,尾指针向后扫描,直到头指针和尾指针中间包含了全部的关键字,那么头指针向转载 2015-08-17 21:56:44 · 504 阅读 · 0 评论 -
整数划分问题(递归法)
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi)f(n,m); 例如当n=4时,他有5个划分,{4},{3,1},{2,2},{2,1,1},{1,1转载 2015-08-26 16:35:48 · 678 阅读 · 0 评论 -
八大排序算法总结
八大排序算法的稳定性及复杂度总结如下: 选择排序算法准则 每种排序算法都各有优缺点。因此,在实用时需根据不同情况适当选用,甚至可以将多种方法结合起来使用。 影响排序的因素有很多,平均时间复杂度低的算法并不一定就是最优的。相反,有时平均时间复杂度高的算法可能更适合某些特殊情况。同时,选择算法时还得考虑它的可读性,以利于软件的维护。一般而言,需要考虑的因素有以下四点: 1.待排序转载 2015-08-19 19:46:49 · 1033 阅读 · 0 评论 -
最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
最大子序列 最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的子序转载 2015-08-22 12:00:24 · 412 阅读 · 0 评论 -
在一个文件中有 10G 个整数,乱序排列,要求找出中位数(内存限制为2G)
如题 “在一个文件中有 10G 个整数,乱序排列,要求找出中位数(内存限制为 2G)” 假设整数用32bit来表示。 第一步:要表示10G大小的数字,最少需要一个64位的数据空间。(10G = 5 * 2^31 > 2^32 ) 假如说10G个整数全是1,那么映射后,会全部映射到第一个区间。 此时,第一个区间的数值应该表示10G,其他的所有区间的数值都为0。要想表示一个转载 2015-09-06 10:25:47 · 3464 阅读 · 1 评论 -
在N个乱序数字中查找第k大的数字
在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 O(N*logN)O(N)O(1)O(2) 答案:B 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解法1:我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*logn + k)。 解法2:利用选择排序转载 2015-08-21 18:57:32 · 17000 阅读 · 1 评论 -
求二叉树节点的最大差值
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率 这是2015阿里秋招的一个在线笔试题 实现方法很简单,遍历一遍二叉树,找出最大最小,一相减就可以求出最大的差值 只要是非递归的的方法遍历都可以很容易找出最大值最小值,效率也比较高,时间复杂度为O(n) /** * 按层遍历二叉树原创 2015-08-17 16:28:05 · 1550 阅读 · 0 评论 -
Best Time to Buy and Sell Stock I II III IV
Best Time to Buy and Sell Stock I Description: Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (转载 2015-09-20 11:20:07 · 466 阅读 · 0 评论