149 直線上最多的點數

2021-08-25 14:18:39 字數 658 閱讀 1205

思路:先用map將輸入的點去重(這裡要自定義比較函式),然後對於每乙個點,遍歷其後面的每乙個點,記錄在一條直線上的點的數目,在記錄的過程中維護最大值。

開始時在map的自定義比較函式上面卡了殼,為此還得到codeblock這種ide除錯才看的出來,用vs的話比較函式少了const照樣能執行

/**

* definition for a point.

* struct point

* point(int a, int b) : x(a), y(b) {}

* };

*/class cmp

int maxpoints(vector

& points)

mapint,int>,int> mmap;//記錄該定點開始的斜率為pair的直線的數目

for(auto it_i=pointsmap.begin();it_i!=pointsmap.end();it_i++)

if(mmap.count(make_pair(a,b))==0)

//printf("a=%d b=%d %d\n",a,b,mmap[make_pair(a,b)]);}}

return maxn;

}};

LeetCode 149 直線上最多的點數

給定乙個二維平面,平面上有 n 個點,求最多有多少個點在同一條直線上。思路 兩點可以確定一條直線,那麼選擇固定乙個點,求其他點與固定點的斜率,如果斜率相同,那麼斜率相同的點在同一條直線上。注意點 1.儲存斜率可以使用雜湊表進行 2.測試資料中精度要求很高,使用double進行計算會出現錯誤,可以選擇...

LeetCode 149 直線上最多的點數

給定乙個二維平面,平面上有 n 個點,求最多有多少個點在同一條直線上。示例 1 輸入 1,1 2,2 3,3 輸出 3解釋 o o o 0 1 2 3 4示例 2 輸入 1,1 3,2 5,3 4,1 2,3 1,4 輸出 4解釋 o o o o o o 0 1 2 3 4 5 6此題給了乙個陣列,...

LeetCode 149 直線上最多的點數

給定乙個二維平面,平面上有 n 個點,求最多有多少個點在同一條直線上。示例 1 輸入 1,1 2,2 3,3 輸出 3 解釋 o o o 0 1 2 3 4 示例 2 輸入 1,1 3,2 5,3 4,1 2,3 1,4 輸出 4 解釋 o o o o o o 0 1 2 3 4 5 6?對每乙個點...