最大子段和_算法与数据结构_Python

    今天有幸参加了腾讯实习的一面,估计也是最后一面了,很少写代码了,写也是用matlab在搞些图像方面的处理。

    面试官让我做了下简单的自我介绍,然后扫了下我的简历,让我写一个最大子段和的代码。我问他语言不限吧,他迟疑了下,然后说可以,悲剧从此诞生,我用python弄了个最大子段和的程序,这是个动态规划的程序不算太难,他看不懂,让我写一个c语言的反转字符串程序,哈哈,估计把他逗了吧,但是我应该也是悲剧了。

    最让我囧的是他问我matlab是什么东西,这让我情何以堪啊,我就随便说了两句。如果他真的不知道matlab那让我就无语了,学过计算机的人都应该知道matlab是啥东东把~~

    最大子段和的程序就不用介绍了,下面的解答有点bf的意思。

python代码:

def SetSubSum(array,index):
     
     #获取每个子段和
     global sums
     
     if sums[index-1]>=0:
          sums[index] = sums[index-1] + array[i]
     else:
          sums[i]=array[i]


def GetMaxSum(array):
     #获取最大子段和
     _max = array[0]
     for i in range(1,len(array)):
          if _max<=array[i]:
               _max=array[i]
     return _max

if '__name__=__main__':
     array = [1,2,-2,3,4]
     global sums
     sums = [0]*len(array)
     for i in range(0,len(array)):
          SetSubSum(array,i)
     _max = GetMaxSum(sums)
     print("Max Sub Sum is:",_max)

posted on 2011-04-25 18:57  追求卓越 挑战极限  阅读(1319)  评论(0编辑  收藏  举报

导航