1. 解题思路
这一题的话思路上我是预先算出可能数字对应的element,然后只要一次query就行了。
而至于如何求解每一个数字对应的element,我们是仿造质数的求解方法进行处理。
2. 代码实现
给出python代码实现如下:
class Solution:
def assignElements(self, groups: List[int], elements: List[int]) -> List[int]:
n = max(groups)
status = [-1 for _ in range(n+1)]
for i, e in enumerate(elements):
if e > n or status[e] != -1:
continue
for j in range(e, n+1, e):
if status[j] == -1:
status[j] = i
return [status[i] for i in groups]
提交代码评测得到:耗时157ms,占用内存38.1MB。