|
发表于 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))
复制代码 |
评分
-
查看全部评分
|