Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 593. Valid Square
題目:

方法:
d[0] d[1] d[2] d[3] -> 四條邊 d[4] d[5] -> 兩條對角線
解答:
class Solution {
public:
bool validSquare(vector<int>& p1, vector<int>& p2, vector<int>& p3, vector<int>& p4) {
function<int(vector<int>&, vector<int>&)> d = [](vector<int>& a, vector<int>& b) -> int {
int ax = a[0] - b[0];
int ay = a[1] - b[1];
return ax * ax + ay * ay;
};
vector<int> p;
p.push_back(d(p1, p2));
p.push_back(d(p1, p3));
p.push_back(d(p1, p4));
p.push_back(d(p2, p3));
p.push_back(d(p2, p4));
p.push_back(d(p3, p4));
sort(p.begin(), p.end());
return p[0] > 0 &&
p[0] == p[1] &&
p[1] == p[2] &&
p[2] == p[3] &&
p[4] == p[5];
}
};