2012年1月1日

编程珠玑 读书笔记 求最大的子串和

摘要: 问题:有一个数组 31,-41,59,26,-53,58,97,-93,-23,84 。现在要求出它的连续子串的最大值。比如,31,-41,59,26是它的一个连续的子串,他们的和为75。但是75并不是最大值,有一个子串 59,26,-53,58,97它们的和187才是最大的。求解:《Programming Pearls》第77页开始一共给出了4种解法,前两种非常简单,是大多数人思考几分钟就能想出的方法,但是复杂度却很高,分别为O(n^3)和O(n^2)。后两种解法则非常巧妙,更神奇的是第四种方法居然只有线性复杂度O(n)!解法1、解法2略。解法3:分治法,复杂度为O(nlogn)。分治法在结 阅读全文

posted @ 2012-01-01 22:05 Knuth_档案 阅读(538) 评论(1) 推荐(0)

导航