|
发表于 2018-5-25 16:12:39
|
显示全部楼层
本帖最后由 凌九霄 于 2018-5-28 16:25 编辑
- A = [11, 20, 62, 6, 15, 87, 27, 50, 98, 52, 55, 16, 48, 38, 80, 80, 85, 80, 7, 58, 52, 4, 68, 99, 29, 42, 2, 1, 61, 88]
- B = [82, 64, 94, 44, 8, 56, 31, 29, 37, 34, 54, 66, 14, 43, 82, 96, 44, 60, 62, 70, 26, 56, 60, 61, 4, 74, 32, 6, 77, 51]
- C = [6, 53, 57, 39, 90, 87, 28, 95, 15, 6, 63, 8, 28, 93, 86, 56, 28, 93, 34, 71, 87, 31, 67, 87, 70, 2, 34, 27, 6, 76]
- import random
- import timeit
- D = [random.randint(1, 99) for i in range(1000)]
- E = [random.randint(1, 1000) for i in range(1000000)]
- def max_rainwater(lst):
- maxvalue = max(lst)
- ABsection = (lst[:lst.index(maxvalue) + 1], lst[lst.index(maxvalue):][::-1])
- result = 0
- for i in ABsection:
- bigvalue = i[0]
- for j in range(1, len(i)):
- if i[j] >= bigvalue:
- bigvalue = i[j]
- else:
- result += bigvalue - i[j]
- return result, lst
- rw = max_rainwater(A)
- print('列表长度:{0} 可收集最大雨水数:{1}'.format(len(rw[1]), rw[0]))
- rw = max_rainwater(B)
- print('列表长度:{0} 可收集最大雨水数:{1}'.format(len(rw[1]), rw[0]))
- rw = max_rainwater(C)
- print('列表长度:{0} 可收集最大雨水数:{1}\n'.format(len(rw[1]), rw[0]))
- rw = max_rainwater(D)
- print('随机列表长度:{0} 可收集最大雨水数:{1}'.format(len(rw[1]), rw[0]))
- print('函数执行用时:{0}s\n'.format(timeit.timeit('max_rainwater(D)', setup='from __main__ import max_rainwater,D', number=1)))
- rw = max_rainwater(E)
- print('随机列表长度:{0} 可收集最大雨水数:{1}'.format(len(rw[1]), rw[0]))
- print('函数执行用时:{0}s'.format(timeit.timeit('max_rainwater(E)', setup='from __main__ import max_rainwater,E', number=1)))
复制代码
|
-
|