Leetcode Max Points on a Line
来源:互联网 发布:数据分析师专业 编辑:程序博客网 时间:2024/06/05 02:51
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
Difficulty: Hard
Solution: Traverse every pair of points, if their slope are the same, they will be on the same line. Build a hashtable to record it.
/** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; y = 0; } * Point(int a, int b) { x = a; y = b; } * } */ import java.util.Hashtable; import java.util.Enumeration;public class Solution { public int maxPoints(Point[] points) { int res = 0; if(points.length == 0) return 0; if(points.length == 1) return 1; if(points.length == 2) return 2; for(int i = 0; i < points.length - 1; i++){ int x1 = points[i].x; int y1 = points[i].y; Hashtable<Double, Integer> maps = new Hashtable<Double, Integer>(); //Hashtable<double, Integer> maps = new Hashtable<double, Integer>(); int ver = 0, par = 0; int general = 0; for(int j = i + 1; j < points.length; j++){ if(x1 == points[j].x && y1 == points[j].y){ general++; continue; } if(x1 == points[j].x){ ver++; continue; } if(y1 == points[j].y){ par++; continue; } double k = ((double)(points[j].y - y1)) / ((double)(points[j].x - x1)); if(!maps.containsKey(k)){ maps.put(k, 1); } else{ maps.put(k, maps.get(k) + 1); } } Enumeration<Double> enumKey = maps.keys(); int ans = 0; while(enumKey.hasMoreElements()) { double key = enumKey.nextElement(); int val = maps.get(key); ans = Math.max(val, ans); } ans = Math.max(ans, ver); ans = Math.max(ans, par); res = Math.max(ans + general + 1, res); } return res; }}
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
- Android5.X和Android6.X上读写外置 USB设备的方案
- 动态规划1-数字三角形(算法基础 第4周)
- 【转】【复】实现复数中的运算符重载
- 科普:x64与IA64
- intellij的maven工程"Server IPC version 9 cannot communicate with client version"错误的解决办法
- Leetcode Max Points on a Line
- oop概念性讲解
- 在web.xml中配置diaplay-name是什么意思
- Activity的生命周期(基础篇)
- 轻松把玩HttpClient之封装HttpClient工具类(七),新增验证码识别功能
- 决心
- TCPdump抓包命令
- discuz QQ互联登陆出现(1054) Unknown column “conuintoken” in “field list”
- C/C++ 完全数