[LeetCode] Max Points on a Line
来源:互联网 发布:云狐网络科技园怎么样 编辑:程序博客网 时间:2024/06/05 17:46
Max Points on a Line Total Accepted: 16037 Total Submissions: 148156 My Submissions
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
注意考虑没有斜率的情况需要特殊考虑,还要考虑有重复点的情况
public class MaxPointsOnALine {static class Point {int x;int y;Point(){x = 0;y = 0;}Point(int a, int b){x = a;y = b;}} public int maxPoints(Point[] points) {if (points == null || points.length < 1) {return 0;}int n = points.length;if (n == 1) {return 1;}int maxLine = 0;for (int i = 0; i < n; i++) {int samePoint = 0;int noK = 0;int zeroK = 0;Point curPoint = points[i];Map<Double, Integer> kMap = new HashMap<Double, Integer>();for (int j = 0; j < n; j++) {Point point = points[j];if (curPoint.x == point.x && curPoint.y == point.y) {samePoint++;} else if (curPoint.x == point.x) {noK++;} else if (curPoint.y == point.y) {zeroK++;} else {double k = ((double) curPoint.y - (double) point.y) / (curPoint.x - point.x);if (kMap.containsKey(k)) {kMap.put(k, kMap.get(k) + 1);} else {kMap.put(k, 1);}}}if (maxLine < (noK + samePoint)) {maxLine = noK + samePoint;}if (maxLine < (zeroK + samePoint)) {maxLine = zeroK + samePoint;}for (Integer value : kMap.values()) {if (value + samePoint > maxLine) {maxLine = value + samePoint;}}}return maxLine; }}
0 0
- Max Points on a Line | leetcode
- Max Points on a Line LEETCODE
- Leetcode: Max Points on a Line
- LeetCode - Max Points on a Line
- LeetCode 之 Max Points on a Line
- LeetCode | Max Points on a Line
- [LeetCode] Max Points on a Line
- Leetcode: Max Points on a Line
- LeetCode OJ:Max Points on a Line
- Leetcode Max Points on a Line
- Leetcode: Max Points on a Line .
- [Leetcode] Max Points on a Line (Java)
- leetcode:【Max Points on a Line】
- Max Points on a Line - LeetCode
- LeetCode:Max Points on a Line
- [LeetCode] Max Points on a Line
- leetcode - Max Points on a Line
- LeetCode(149)Max Points on a Line
- qmake的使用简介
- python使用matplotlib绘图 -- barChart
- Linux下select, poll和epoll IO模型的详解
- OGRE CG教程 (一):OGRE CG 基础
- 传真数据交换平台的构建
- [LeetCode] Max Points on a Line
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
- 解决:Android编译源码根目录下/system/vold后,通过push命令将编译生成的vold文件push至system/bin下无法正常开机
- C++ int与string或者char*之间的转换总结
- 再也不想走
- 深入理解Nginx 读书笔记
- MVC4常见路由的处理方式
- 华为机试 - 求字符串中最大最小值
- hibernate通过数据库表反向生成实体类