程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode----Max Points On a Line

LeetCode----Max Points On a Line

編輯:C++入門知識

Max Points on a Line

Total Accepted: 4246 Total Submissions: 42602

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.


分析: 任取兩點組成的直線,看有多少點在其上面。

注意: 考慮 3 種情況: 兩點重合; 斜率為無窮大; 正常情況

/**
 * Definition for a point.
 * struct Point {
 *     int x;
 *     int y;
 *     Point() : x(0), y(0) {}
 *     Point(int a, int b) : x(a), y(b) {}
 * };
 */
class Solution {
public:
    int maxPoints(vector &points) {
        int max_points(0);
        double a(0), b(0); // denote a straight line
        LINE_TYPE line_type(LINE); 
        
        if(points.size() == 0) return 0;
        else if(points.size() == 1) return 1;
        
        for(int i=0; i(points[j].x - points[i].x); //tangent
                b = points[i].y - a * points[i].x;
              }
              
              // compute how many points on the line  
              int point_count(2);
              for(int k=0; k

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved