Java實現--給定2D平面上的n個點,找出位於同一直線上的最大點數。
//這是原文。
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
//預設給出的建構函式
/**
* Definition for a point.
* class Point {
* int x;
* int y;
* Point() { x = 0; y = 0; }
* Point(int a, int b) { x = a; y = b; }
* }
*/
理一下思路(窮舉):
同一直線上,分兩種情況:
1.斜率(Slope)相同
2.有重複的點
public class Solution {
public int maxPoints(Point[] points) {
if(points.length == 0){
return 0;
}
if( points.length <= 2 ){
return points.length;
}
int max = 2 ;
for( int i = 0 ; i < points.length ; i++ ){
int samePosition = 0; //重複位置的點
int sameSlope = 1; //斜率相同的點,第一個點
for( int j = i + 1 ; j < points.length ; j++ ){
//判斷是否為重複位置的點
int x_distance1 = points[j].x - points[i].x;
int y_distance1 = points[j].y - points[i].y;
if( x_distance1 == 0 && y_distance1 == 0 ){
samePosition++;
} else {
sameSlope++;//第二個點,所以可以直接++
for(int k = j + 1 ; k < points.length ; k++ ){
//當判斷第3個點的時候可能有人會有疑問為什麼不用繼續判斷是否跟第二個點為相同的點
//這是不可行的,因為在判斷斜率是否相同的時候又會繼續自增一次,會重複加多一次。
if ( x_distance1 * y_distance2 == x_distance2 * y_distance1 ) {
sameSlope++;
}
}
}
if(max < (samePosition + sameSlope)){
max = samePosition + sameSlope;
}
sameSlope = 1;
}
}
return max;
}
}
相關文章
- 小於n的最大數
- 給定陣列中找到最大的兩個數陣列
- 給定一個大小為 n 的陣列,找到其中的眾數。眾數是指在陣列中出現次數大於 ⌊ n/2 ⌋ 的元素。陣列
- 兩個燃點,引爆線上教育平臺數智化
- 關於《給部落格園的幾點現實建議》
- 一個問號,點選給一個提示view的實現。View
- 關於java 異常的輸出位置Java
- 連結串列面試題(五)---尋找連結串列的倒數第k個結點O(N)面試題
- Java中查詢給定數字下最大素數的2種方法Java
- vue實現單點登入的N種方式Vue
- 一個簡單的 Laravel 站點設定實現Laravel
- 線上教育平臺開發的幾個關鍵點
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- [每日一題] 第十六題:n個骰子的點數每日一題
- Java 實現單例的難點Java單例
- 實時熱點網站有哪些?3個超實用的熱點網站,輕鬆找熱點網站
- 堆的定義、特點及實現
- 用一個巨集實現求兩個數中的最大數
- Java二叉樹排序及任意兩點個節點間的最大距離Java二叉樹排序
- 給部落格園的幾點現實建議
- MySQL 有意思的浮點數和定點數MySql
- 給新手 Java 開發者的 7 點提示Java
- 杭州找Android工作的點點滴滴Android
- 在Java中實現浮點數的精確計算 (轉)Java
- 今日頭條程式設計題1 找"最大"點程式設計
- 關於HDFS應知應會的N個問題 | 技術點
- ACM 尋找最大數ACM
- 19. 刪除連結串列的倒數第 N 個結點
- 找熱點物件的sql:物件SQL
- 定點數的編碼表示
- 劍指Offer-17-列印從1到最大的n位數-Java程式碼實現(兩種思路)Java
- CSS如何設定不可點選?CSS如何設定不可點選的實現方法CSS
- Java斷點續傳(基於socket與RandomAccessFile的簡單實現)Java斷點randomMac
- 盤點JAVA中基於CAS實現的原子類, 你知道哪些?Java
- 實現自然數N的全排列
- 基於webrtc實現點對點桌面分享Web
- 有關於錨點的程式碼實現
- 給初學java的一點建議Java