Leetcode 593 有效的正方形

2021-09-24 06:14:49 字數 1375 閱讀 9362

給定二維空間中四點的座標,返回四點是否可以構造乙個正方形。

乙個點的座標(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...