题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)

i c } m l p a o s r s f } f } t u u F n n F o c c o r i } v v f } r v v f } r u 3 m f a a o e m a a o e n 1 a r r r t a r r r t d S x n u x u a o S . r c s i i } } i } r S c s i c s r t l u c e u u f e f n u u u u u n i u b o t r m i l b r m i r m o t A u u r n c s c s A r n r s n i r n r e = u c e c u s u r e = e = u o r t n n n r u u r u m r n n n m n a t I r r { r r m a t I t m y = 0 n { e r r e y n { a { ( = = t n e e n = 2 = t = x _ . t n n t ( . ( 0 0 m t t c _ 0 m m c n i < > u i a u : { n = + r n n x r 0 = s r : ( r [ i u e i e I { i m n [ , n n t I t t { n c , ] t u ) ] r s ) r u e m n ) t I + n I i t n ) t { {

算法思想:第一种解法比较常规,第二种解法比较巧妙。每次比较当前和之前的值大小,然后存最大的值。

github地址:https://github.com/cubegao/LeetCode