版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/musechipin/article/details/85045532
两层for循环也可以做,不过观察可以发现点的奇偶就四种情况:奇偶,奇奇,偶奇,偶偶,只有在这四种内部组合的数对才都能被2整除。
class Solution {
public:
int pairNumbers(vector<Point> &p) {
int x,y,z,w;
x=y=z=w=0;
for (int i=0;i<p.size();i++)
if (p[i].x%2==1)
{
if (p[i].y%2==0) x++;
else y++;
}
else {if (p[i].y%2==1) z++;
else w++;}
return x*(x-1)/2+y*(y-1)/2+z*(z-1)/2+w*(w-1)/2;
}
};
注意一次给多个变量赋值的写法。