|  | 
 
 发表于 2020-1-7 15:27:01
|
显示全部楼层 
| 让我看看还有什么数据能错。
 
 复制代码def solve(pages:'list of int',k:int)->int:
    t = [sum(pages)]
    p = [pages[:]]
    while len(p) < k and len(p)<len(pages):
        m = max(t)
        i = t.index(m)
        if len(p[i])==1:
            break
        each = []
        l = 0
        while l < m:
            m -= p[i][0]
            l += p[i][0]
            each.append(p[i].pop(0))
        else:
            if max(l-each[-1],m+each[-1]) < max(l,m):
                l -= each[-1]
                p[i].insert(0,each.pop())
        p.insert(i,each)
        t[i] -= l
        t.insert(i,l)
    else:
        m = max(t)
        i = t.index(m)
        if i:
            if max(t[i-1]+p[i][0],m-p[i][0]) < max(t[i-1],m):
                t[i-1] += p[i][0]
                t[i] -= p[i][0]
                p[i-1].append(p[i].pop(0))
    #print('调试',t,p)
    return max(t)
if __name__ == '__main__':
    print('示例1 输出:',solve([3,2,4],2))
    print('示例2 输出:',solve([3,2,4],3))
 | 
 评分
查看全部评分
 |