給定二維空間中四點的座標,返回四點是否可以構造乙個正方形。
乙個點的座標(x,y)由乙個有兩個整數的整數陣列表示。
示例:輸入: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
輸出: true
注意:所有輸入整數都在 [-10000,10000] 範圍內。
乙個有效的正方形有四個等長的正長和四個等角(90度角)。
輸入點沒有順序。
又醜又長又麻煩啊啊啊啊
class solution ;
mp[dis] = t;
}else mp[dis].push_back(i);
}if(mp.size()!=2) return false;
auto it1 = mp.begin();
auto it2 = mp.begin();
it2++;
if(it2->second.size() == 2) swap(it1,it2);
long long d = (tmp[it1->second[0]].first - tmp[it1->second[1]].first)*(tmp[it1->second[0]].first - tmp[it1->second[1]].first) + (tmp[it1->second[0]].second - tmp[it1->second[1]].second)*(tmp[it1->second[0]].second - tmp[it1->second[1]].second);
if(d != it2->first)return false;
long long k1 = (tmp[0].second - tmp[it2->second[0]].second) * (tmp[it1->second[0]].second - tmp[it1->second[1]].second);
long long k2 = (tmp[0].first - tmp[it2->second[0]].first) * (tmp[it1->second[0]].first - tmp[it1->second[1]].first);
if(k1 != -k2) return false;
k1 = (tmp[0].second - tmp[it1->second[0]].second) * (tmp[0].second - tmp[it1->second[1]].second);
k2 = (tmp[0].first - tmp[it1->second[0]].first) * (tmp[0].first - tmp[it1->second[1]].first);
if(k1 == -k2) return true;
return false;
}};
LEETCODE593 有效的正方形
問題描述 給定二維空間中四點的座標,返回四點是否可以構造乙個正方形。乙個點的座標 x,y 由乙個有兩個整數的整數陣列表示。示例 輸入 p1 0,0 p2 1,1 p3 1,0 p4 0,1 輸出 true 注意 所有輸入整數都在 10000,10000 範圍內。乙個有效的正方形有四個等長的正長和四個...
leetcode 有效的括號
題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。示例1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 true includ...
leetcode 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...