结对开发
题目:返回一个整数数组中最大子数组的和。
要求:输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突。
你有一个苹果,我有一个苹果,交换一下我们各自仍有一个苹果。
你有一种思想,我有一种思想,交换一下我们就会拥有两种思想。
讲述一下我们的合作过程,看到题目每个人都会有那么一点点想法
,各自叙述自己的观点,并听取伙伴的建议,首先我们想到了最简单的
办法,遍历思想,求出虽有结果的可能性,但考虑到时间复杂度的问题,
我们放弃了这种做法,知道我们需要一种算法来解决困境,便从以往的
经验入手,我的搭档Z很快就有了思路,他逻辑思维能力很好,给我讲
述他的看法,第一次我没听懂,又讲了第二遍;冥冥中有那么点抱了大
腿的感觉,我想这也是结对开发的最大好处了,它可以让你比较快速的
找到问题解决的方式,还有一种情况就是及时的把你从错误的道路上“挽
救”回来,我叙述叙述一下我们的思路:
我们通过一次遍历求和,对数组中的每一项都加到初始化的sum中,
并在每新产生一个结果时都去记录这个结果找到最大的和,同时也就找
到了第二次的扫描起点,在向两边做同样的工作,直至找到最大的和。
在想到这个方法后,我们还开完笑,这下diao了,还开发除了一个算法
来。有时候这种喜悦不是自己一个人战斗可以体会的,至少你还有哥们
在无聊时可以开玩笑,至少你在没头绪时还有个人吐槽一下。有可能这
也只是一个小程序体会不是那么深,但如今的大项目很常见的的都会有
不小的工作量,这都不是你一个人能够承担起来的,即使你再厉害,你
的一天也是二十四小时。孤胆英雄的时代已经过去了,识时务者为俊杰。
合作过程中,避免不来了会产生冲突,的确我们思路都是从不一致,到
统一。正确的思想是经得起碰撞的。很多人碍于面子,希望掩饰自己的错
误,我想如果你把遮掩的时间用来思考错在何处会更有价值!事物的好坏
都有评定的标准,同样好的思路也是我们共同的追求。在自己错了的时候
要勇于面对,没有常胜将军,但可以有一颗求胜的心!