|
发表于 2020-3-5 09:10:06
|
显示全部楼层
引用了外部模块,解楼主给的超长数据,自己测试,时长8秒
- import numpy as np
- def p336(m,woods):
- woods1 = np.sort(np.array(woods))[-m:][::-1]
- lmin, pmax = max(woods) // m, sum(woods) // m
- if woods1.size <= 1:
- return lmin
- if m == 1:
- return max(woods)
- nwoods = np.unique(woods1)[::-1]
- t = k = rec = 0
- while k < nwoods.size:
- t += 1
- tmp, c = nwoods[k]//t, 0
- if lmin <= tmp <= pmax:
- if tmp > rec:
- c = np.sum(woods1//tmp)
- else:
- k += 1
- t = 0
- if c >= m:
- rec = max(rec, tmp)
- k += 1
- t = 0
- else:
- if t == m:
- k += 1
- return rec
复制代码 |
|