3115. 质数的最大距离
题目描述
给你一个整数数组 nums
。
返回两个(不一定不同的)质数在 nums
中 下标 的 最大距离。
示例 1:
输入: nums = [4,2,9,5,3]
输出: 3
解释: nums[1]
、nums[3]
和 nums[4]
是质数。因此答案是 |4 - 1| = 3
。
示例 2:
输入: nums = [4,8,2,8]
输出: 0
解释: nums[2]
是质数。因为只有一个质数,所以答案是 |2 - 2| = 0
。
提示:
1 <= nums.length <= 3 * 105
1 <= nums[i] <= 100
- 输入保证
nums
中至少有一个质数。
解法
方法一:遍历
根据题目描述,我们需要找出第一个质数所在的下标 $i$,然后找出最后一个质数所在的下标 $j$,将 $j - i$ 作为答案返回即可。
因此,我们可以从左到右遍历数组,找到第一个质数所在的下标 $i$,然后从右到左遍历数组,找到最后一个质数所在的下标 $j$,答案即为 $j - i$。
时间复杂度 $O(n \times \sqrt{M})$,其中 $n$ 和 $M$ 分别是数组 $nums$ 的长度和数组中的最大值。空间复杂度 $O(1)$。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|