题目来源:

  https://leetcode.com/problems/max-points-on-a-line/


题意分析:

  在一个2D的板上面有很多个点,判断最多有多少个点在同一条直线上。


题目思路:

  这里我们可以用斜率来记录两条边是否在同一条直线。如果考虑再细一点,由于double有精度的问题,斜率最后用分数来表示。


代码(python):

# Definition for a point.
# class Point(object):
# def __init__(self, a=0, b=0):
# self.x = a
# self.y = b class Solution(object):
def maxPoints(self, points):
"""
:type points: List[Point]
:rtype: int
"""
size = len(points)
if size < 3:
return size
ans = 0
for i in range(size):
d = {'inf':0}
samePoint = 1
for j in range(size):
if i == j:
continue
elif points[i].x == points[j].x and points[i].y != points[j].y:
d['inf'] += 1
elif points[i].x != points[j].x:
k = 1.0 * (points[i].y - points[j].y) / (points[i].x - points[j].x)
if k in d:
d[k] += 1
else:
d[k] = 1
else:
samePoint += 1
ans = max(ans,max(d.values()) + samePoint)
return ans

最新文章

  1. 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
  2. .NET下的并行开发
  3. bzoj1028 [JSOI2007]麻将
  4. Excel VBA
  5. 【Linux高频命令专题(16)】less
  6. 安装tomcat 证书
  7. thymelef 布局 fragment
  8. POJ 1716 Integer Intervals#贪心
  9. Java 之 Spring加载(Java之负基础实战)
  10. Java正则过滤
  11. Mysql配置优化,库表设计
  12. Retrofit官方文档翻译
  13. MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
  14. Unity3D AssetBundle相关
  15. 关于 CSLA 服务器部署WCF访问出错的问题
  16. 状压dp-----三进制
  17. OpenVPN推送默认路由表
  18. 【AngularJs-模块篇-Form篇】
  19. Python学习---Django拾遗180328
  20. 【LeetCode】137. Single Number II (3 solutions)

热门文章

  1. hdu2243考研路茫茫——单词情结
  2. getgrgid()函数
  3. c语言合法标识符
  4. jupyter巨好玩-常用设置
  5. python---连接MySQL第五页
  6. laravel5.1框架简介及安装
  7. GDI+简单现实文字旋转
  8. MD5 32位、16位加密
  9. usb键鼠标驱动分析
  10. html系列教程--link mark meta