題目:給出二維平面上的n個點,求最多有多少點在同一條直線上。
例子:給出4個點:(1, 2), (3, 6), (0, 0), (1, 3)。一條直線上的點最多有3個。
方法:取定乙個點points[i], 遍歷其他所有節點, 然後統計斜率相同的點數(用map(float, int) 記錄斜率及其對應點數,取map中點數最多的斜率),並求取最大值即可。
class solution
float k = points[i].x == points[j].x ? int_max : (float)(points[j].y - points[i].y)/(points[j].x - points[i].x);
mp[k]++;
}unordered_map
::iterator it = mp.begin();
for(; it != mp.end(); it++)
if(it->second + duplicate > maxnum)
maxnum = it->second + duplicate;
}return maxnum;
}};
最多有多少個點在一條直線上 LintCode
給出二維平面上的n個點,求最多有多少點在同一條直線上。樣例 給出4個點 1,2 3,6 0,0 1,3 一條直線上的點最多有3個。思想 利用map ifndef c186 h define c186 h include include include include using namespace ...
186 最多有多少個點在一條直線上
186.最多有多少個點在一條直線上 給出二維平面上的n個點,求最多有多少點在同一條直線上。樣例樣例 1 輸入 1,2 3,6 0,0 1,3 輸出 3 樣例 2 輸入 1,2 2,3 3,2 輸出 2 注意事項 x點和y點的座標值在 1000 1000之間 int findmax vector kv...
lintcode最多有多少個點在一條直線上
最多有多少個點在一條直線上 給出二維平面上的n個點,求最多有多少點在同一條直線上。您在真實的面試中是否遇到過這個題?yes 樣例給出4個點 1,2 3,6 0,0 1,3 一條直線上的點最多有3個。標籤 領英數學雜湊表 分析 這道題就是取乙個點point,然後計算其他的點與這個點的斜率,用乙個has...