1. 解题思路
这一题思路上非常的直接,就是找到数组当中所有的质数的位置,然后去首尾两个计算位置的距离即可。
因此,问题也就变成了一个判断任意一个数是不是素数的问题,这个就老生常谈了,就不用展开多说了,直接给出代码就行。
2. 代码实现
给出python代码实现如下:
PRIMES = set()
status = [0 for _ in range(100)]
for i in range(2, 100):
if status[i] != 0:
continue
status[i] = 1
PRIMES.add(i)
for j in range(i, 100, i):
status[j] = 1
class Solution:
def maximumPrimeDifference(self, nums: List[int]) -> int:
lb, rb = -1, -1
for i, x in enumerate(nums):
if x in PRIMES:
if lb == -1:
lb = i
rb = i
return rb-lb
提交代码评测得到:耗时744ms,占用内存26.8MB。