2020京东社招笔试编程题-数据分析岗

一个朋友参加的2020京东社招数据分析岗的笔试,有两道编程题。留了第一题,大意就是根据每日限制如何出售股票使得总亏损最少。

import math
while 1:
    nm=list(map(int,input().split(' ')))
    n=nm[0]
    m=nm[1]
    a=sorted(list(map(int,input().split(' '))))
    Q=int(input())
    for i in range(Q):
        q=int(input())
        t=int((q-q%m)/m)
        loss=0
        if t==0:
            for j in range(q):
                loss += a[j]
        else:
            for k in range(t):
                for j in range(m):
                    loss += (k+1)*a[:q][-j-1-k*m]
            if int(q%m)!=0:
                for l in range(int(q%m)):
                    loss += (t+1)*a[l]
        print(loss)
    break

用题目样例试验,结果正确。
2020京东社招笔试编程题-数据分析岗_第1张图片

你可能感兴趣的:(一些基础分享)