题目:2614. 对角线上的质数
思路:枚举对角线上的元素,判断是否为质数,留取最大的即可。
C++版本:
class Solution {
public:
bool pd(int u){
if(u<2) return false;
for(int i=2;i<=u/i;i++){
if(u%i==0) return false;
}
return true;
}
int diagonalPrime(vector<vector<int>>& nums) {
int n=nums.size();
int res=0;
for(int i=0;i<n;i++){
for(auto x:{nums[i][i],nums[i][n-i-1]}){
if(x>res&&pd(x)){
res=x;
}
}
}
return res;
}
};
JAVA版本:
class Solution {
boolean pd(int u){
if(u<2) return false;
for(int i=2;i<=u/i;i++){
if(u%i==0) return false;
}
return true;
}
public int diagonalPrime(int[][] nums) {
int n=nums.length;
int res=0;
for(int i=0;i<n;i++){
if(nums[i][i]>res&&pd(nums[i][i])){
res=nums[i][i];
}
if(nums[i][n-i-1]>res&&pd(nums[i][n-i-1])){
res=nums[i][n-i-1];
}
}
return res;
}
}