條件:給乙個點陣列
目標:求出共線的點的最多個數
實現:時間複雜度——o(n^2)
要考慮的特殊情況是:①有相同點(這個也太特喵隱蔽了)②斜率不存在的點
思路:暴力求解,遍歷每乙個點,與他之後的點進行匹配,用乙個map儲存斜率對應的個數。
**:
/*view code* * definition for a point.
* struct point
* point(int a, int b) : x(a), y(b) {}
* }; */
class
solution
return
true
; }
void change(map &res,double k,int &num)
}int maxpoints(vector&points)
num=1
;
point point_i,point_j;
double
k;
for(int i=0;i)
else
if(point_j.x-point_i.x == 0 && point_j.y-point_i.y !=0
)else
}else
if(point_j.x-point_i.x != 0
)else}}
if(res.empty())
}for(it=res.begin();it!=res.end();it++)}}
return
num;}};
Lintcode 裝最多水的容器
給定 n 個非負整數 a1,a2,an,每個數代表了座標中的乙個點 i,ai 畫 n 條垂直線,使得 i 垂直線的兩個端點分別為 i,ai 和 i,0 找到兩條線,使得其與 x 軸共同構成乙個容器,以容納最多水。注意事項 容器不可傾斜。您在真實的面試中是否遇到過這個題?yes 樣例給出 1,3,2 ...
裝最多水的容器 LintCode
給定 n 個非負整數 a1,a2,an,每個數代表了座標中的乙個點 i,ai 畫 n 條垂直線,使得 i 垂直線的兩個端點分別為 i,ai 和 i,0 找到兩條線,使得其與 x 軸共同構成乙個容器,以容納最多水。注意事項 容器不可傾斜。樣例 給出 1,3,2 最大的儲水面積是2.ifndef c38...
求二維平面上共線最多的點數
思想為 統計每個點的各個斜率的直線上有多少個點 c include include include include include 隨機數通用公式 a rand n 其中的a是起始值,n是整數的範圍 要取得 a,b 的隨機整數,使用 rand b a a 要取得 a,b 的隨機整數,使用 rand ...