LeetCode 2614. 对角线上的质数
原题链接
简单
作者:
菜菜菜菜菜
,
2023-04-10 15:43:31
,
所有人可见
,
阅读 141
C++ 代码
class Solution {
public:
int diagonalPrime(vector<vector<int>>& v) {
vector<int> q;
for (int i = 0, j = v.size() - 1; i < v.size(); i ++, j -- )
q.push_back(v[i][i]), q.push_back(v[i][j]);
sort(q.begin(), q.end());
for (int i = q.size() - 1; i >= 0; i -- )
{
// 这个判断如果成立 说明之前没有一个比他大的质数 并且他后面也不会有质数 所以直接retrun 0
if (q[i] < 2) return 0;
for (int j = 2; j <= q[i] / j; j ++ )
{
if (q[i] % j == 0)
{
// 将当前值赋值-1 表示当前这个数并不是一个质数
q[i] = -1;
continue;
}
}
// 如果当前数是一个质数就直接返回
if (q[i] != -1) return q[i];
}
return 0;
}
};