摘要: 题目链接题意: 有n个正整数组成的序列,给定一个整数s,求长度最短的连续序列,使他们的和大于或等于s。 关于这个题目,有多种的解法,如果枚举起点和终点,时间复杂度为O(n^3),但如果我们用一个数组B把一段数的和存起来,B[i] = sum(a[1].....a[i])。这样就可以把时间复杂度降到O(n^2)。 还有更好的方法,因为B数组是递增的,我们只需要枚举终点,然后二分查找起点即可,时间复杂度进一步降到O(n*logn),但我们可以继续优化,由于B[i]-s是递增的,枚举的起点也是递增的,换句话说,满足条件的位置也是递增的,因此我们可以怎么写代码://2013-05-21-20.3... 阅读全文
posted @ 2013-05-21 12:42 xindoo 阅读(181) 评论(0) 推荐(0) 编辑