class Solution:
def MinimumTimes(self , arr ):
"""
找规律
0, 3, 4, 1, 2, 3, 2, 1, 2, 3, 2, 1,
4, 3, 2, 3, 4, 3, 2, 3, 4, 3, 2,
5, 4, 3, 4, 5, 4, 3, 4, 5, 4, 3,
6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4,
7, 6, 5, 6, 7, 6, 5, 6, 7, 6, 5,
8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6,
9, 8, 7, 8, 9, 8, 7, 8, 9, 8, 7
"""
# dp_init = self.__solve_table(100)
dp_init = [0, 3, 4, 1, 2, 3, 2, 1, 2, 3, 2, 1, 4, 3, 2, 3, 4, 3, 2, 3, 4, 3, 2, 5, 4, 3]
rnt = list()
for num in arr:
if num < len(dp_init):
rnt.append(dp_init[num])
continue
tmp = int(num % 11)
if tmp == 0:
rnt.append(num // 11)
continue
if tmp in [3, 7]:
rnt.append(num // 11 + 1)
continue
if tmp < 3:
rnt.append(num // 11 + 4 - tmp)
elif tmp == 4:
rnt.append(num // 11 + 2)
elif tmp == 5:
rnt.append(num // 11 + 3)
elif tmp == 6:
rnt.append(num // 11 + 2)
elif tmp == 8:
rnt.append(num // 11 + 2)
elif tmp == 9:
rnt.append(num // 11 + 3)
elif tmp == 10:
rnt.append(num // 11 + 2)
return rnt


京公网安备 11010502036488号