2017.10.30
缺失的素数出现的地方,有三种情况
1.开头
2.中间
3.结尾
对这三种情况分别进行处理就可以了
public class Solution {
/*
* @param : an array of integer
* @return: the first missing prime number
*/
public int firstMissingPrime(int[] nums) {
// write your code here
Arrays.sort(nums);
if(nums.length == 0 || nums[0] > 2){
return 2;
}
for(int i = 2; i < nums[0]; i++){
boolean flag = false;
for(int k = 2; k <= Math.sqrt(k)+1;k++){
if(i%k == 0){
flag = true;
break;
}
}
if(flag == false){
return i;
}
}
for(int i = 0; i < nums.length - 1; i++){
for(int j = nums[i] + 1; j < nums[i+1]; j++){
boolean flag = false;
for(int k = nums[0]; k <= Math.sqrt(j); k++){
if(j % k == 0 ){
flag = true;
break;
}
}
if(flag == false){
return j;
}
}
}
for(int i = nums[nums.length - 1] + 1;; i++){
boolean flag = false;
for(int k = nums[0]; k <= Math.sqrt(i); k++){
if(i % k == 0 ){
flag = true;
break;
}
}
if(flag == false){
return i;
}
}
}
};
本文介绍了一种查找数组中缺失素数的方法。通过排序输入数组并检查三个关键位置:开头、中间和结尾来找到第一个缺失的素数。该算法首先处理小于数组中最小元素的素数,接着检查相邻元素之间的空缺,最后寻找大于数组中最大元素的素数。
1099

被折叠的 条评论
为什么被折叠?



