思路:写出质数函数,然后挨个判断就行了。
注意:这里取出来最大坐标和最小坐标用了二分的方法,是为了减少时间复杂度。vector容器的方法就有现成的。
class Solution {
public:
bool isShu(int n){
if(n==1)return false;
if(n==2)return true;
bool flag=true;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
flag=false;
break;
}
}
return flag;
}
int maximumPrimeDifference(vector<int>& nums) {
vector<int>res;
for(int i=0;i<nums.size();i++){
if(isShu(nums[i])){
res.push_back(i);
}
}
int maxs=*max_element(res.begin(),res.end());
int mins=*min_element(res.begin(),res.end());
return maxs-mins;
}
};