20170826滴滴算法工程师笔试

320 篇文章 85 订阅
151 篇文章 4 订阅

   今天有点坑的就是,本以为题目还是一如既往的套路,编程会卡在那里走不下去,结果是选择题好多知识点都忘了,一心想着快点做完好去做编程题,换来的结果就是选择题一顿瞎写,编程题不到十分钟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]




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值