今天有点坑的就是,本以为题目还是一如既往的套路,编程会卡在那里走不下去,结果是选择题好多知识点都忘了,一心想着快点做完好去做编程题,换来的结果就是选择题一顿瞎写,编程题不到十分钟AC了,只能说有点另类,主要也是由于今天的题目搭配颠覆了之前的套路,好了 ,就当做是一个教训吧,下面简单写一下编程部分:
题目一
题意很好理解就是给定一个数组求其中子序列的最大和
思路:
典型的动态规划问题不需要多说,直接看代码
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:求连续子数组的最大和
'''
def test_func(num_list):
'''
求连续子数组的最大和
'''
res=-1000000
tmp=0
for i in range(len(num_list)):
tmp=max(num_list[i],tmp+num_list[i])
res=max(res,tmp)
print res
if __name__ == '__main__':
num_list=[-1,2,1,3,4,16,7,-30,12,3]
test_func(num_list)
结果如下:
33
[Finished in 0.3s]
题目二
题很短,很好理解,就是给定一个数组求其中第k大的数字
思路:
直接排序输出即可
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:给定一个数组求其中第k大的数字
'''
def test_func(num_list,k):
'''
给定一个数组求其中第k大的数字
'''
num_list.sort(reverse=True)
print num_list[k-1]
if __name__ == '__main__':
k=2
num_list=[-1,2,1,3,4,16,7,-30,12,3]
test_func(num_list,k)
结果如下:
12
[Finished in 0.3s]