10 2013 档案

摘要:对于非环形数组,求解和值最大子段的方法见之前一遍文章;对于环形数组,需要考虑最大和值子段越过首尾边界的情况,解决方法比较简单,即将数组处理两遍; 需要注意子段长度不可以超过整个数组长度; 1 #! -*- coding: utf-8 -*- 2 3 loop = (4, -3, 2, -4, 1, 5, -3, -4, 3) 4 #loop = (4, 3, 2, 4, 1, 5, 3, 4, 3) 5 #loop = (-4, -3, -2, -4, -1, -5, -3, -4, -3) 6 7 # 求解和值最大子段 8 # 算法关键是将和值对整体不利的子序列舍弃,修减问题树 9 # .. 阅读全文
posted @ 2013-10-30 14:16 ZisZ 阅读(340) 评论(0) 推荐(0)
摘要:参考:http://www.felix021.com/blog/read.php?2040以上参考的原文写得很好,解析的非常清楚。以下用我自己的理解,对关键部分算法进行简单的描述:回文的判断需要完成从中心字符向两侧进行逐字符匹配;回文好比圆,由两个重要的参数决定,即“圆心”(中心字符,对偶数长的回文而言是两个字符)和“直径”(回文长度);如果一个“点”落入另一个“圆”内,则以这个点为圆心的“圆”必定受这个“大圆”及相对大圆圆心对称的“对称圆”的影响:在“大圆”范围内,这个“圆”的直径不能大于“对称圆”的直径(只要在大回文的范围内,该回文的字符匹配结果可以取用对称位置回文的匹配结果);即使“对称 阅读全文
posted @ 2013-10-08 13:33 ZisZ 阅读(492) 评论(0) 推荐(0)