题目
给你一个整数数组 nums。
返回两个(不一定不同的)质数在 nums 中 下标 的 最大距离。
思路
存储第一个质数的下标, 之后的质数减去下标就是最大的距离.
代码
class Solution {
public int maximumPrimeDifference(int[] nums) {
int index = -1;
int ans = 0;
for (int i = 0; i < nums.length; i++) {
boolean prime = isPrime(nums[i]);
if (prime) {
if (index < 0) {
index = i;
}
ans = Math.max(ans, i - index);
}
}
return ans;
}
public boolean isPrime(int number) {
if (number < 2) {
return false;
}
int sqrt = (int) Math.sqrt(number);
for (int i = 2; i <= sqrt; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
好像可以不需要判断 ans 与 i - index 的大小.. 因为是顺序遍历,可以直接赋值?
判断质数的方法是直接让 AI 生成的..
题解
灵神题解 : leetcode.cn/problems/ma…