149. Max Points on a Line
来源:互联网 发布:ubuntu重启网卡 编辑:程序博客网 时间:2024/06/11 11:41
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.
public class Solution { public int maxPoints(Point[] points) { if (points == null || points.length == 0) { return 0; } HashMap<Double, Integer> map=new HashMap<Double, Integer>(); int max = 1; for(int i = 0 ; i < points.length; i++) { // shared point changed, map should be cleared and server the new point map.clear(); // maybe all points contained in the list are same points,and same points' k is // represented by Integer.MIN_VALUE map.put((double)Integer.MIN_VALUE, 1); int dup = 0; for(int j = i + 1; j < points.length; j++) { if (points[j].x == points[i].x && points[j].y == points[i].y) { dup++; continue; } // look 0.0+(double)(points[j].y-points[i].y)/(double)(points[j].x-points[i].x) // because (double)0/-1 is -0.0, so we should use 0.0+-0.0=0.0 to solve 0.0 !=-0.0 // problem // if the line through two points are parallel to y coordinator, then K(slop) is // Integer.MAX_VALUE double key=points[j].x - points[i].x == 0 ? Integer.MAX_VALUE : 0.0 + (double)(points[j].y - points[i].y) / (double)(points[j].x - points[i].x); if (map.containsKey(key)) { map.put(key, map.get(key) + 1); } else { map.put(key, 2); } } for (int temp: map.values()) { // duplicate may exist if (temp + dup > max) { max = temp + dup; } } } return max; }}
0 0
- LeetCode 149. Max Points on a Line
- 149.Max Points on a Line
- 149. Max Points on a Line
- [leetcode] 149. Max Points on a Line
- leetcode 149. Max Points on a Line
- Leetcode 149. Max Points on a Line
- 149. Max Points on a Line
- LeetCode 149. Max Points on a Line
- leetcode.149. Max Points on a Line
- LeetCode-149.Max Points on a Line
- 149. Max Points on a Line
- leetcode 149. Max Points on a Line
- leetCode 149. Max Points on a Line
- 149. Max Points on a Line
- [LeetCode] 149. Max Points on a Line
- 149. Max Points on a Line
- LeetCode 149. Max Points on a Line
- [LeetCode]149. Max Points on a Line
- glide:自定义变换
- glide:用animate()定制动画
- 类与对象
- glide:整合网络协议栈
- glide:用Modules定制Glide
- 149. Max Points on a Line
- glide:Glide Module 案例: 接受自签名HTTPS证书
- glide:Glide Module案例: 自定义缓存
- glide:Glide Module 案例: 通过加载自定义大小图片优化
- 一些数论知识(不定期更新)
- 面向对象-final关键字
- glide:动态使用 Model Loaders
- glide:如何旋转图片
- 几本.Net的经典书籍