ARTS-8-算法练习-二维平面查找最高共点数

简介: ARTS-8-算法练习-二维平面查找最高共点数

Algorithm


题目概述:

 

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


代码:


import java.util.HashMap;
import java.util.Map;
class Point {
    int x;
    int y;
    Point() {
        x = 0;
        y = 0;
    }
    Point(int a, int b) {
        x = a;
        y = b;
    }
}
public class Solution {
 public int maxPoints(Point[] points) {
        int n = points.length;
        if(n < 2) return n;
        int ret = 0;
        for(int i = 0; i < n; i++) {
            // 分别统计与点i重合以及垂直的点的个数
            int dup = 1, vtl = 0;
            Map<Float, Integer> map = new HashMap<>();
            Point a = points[i];
            for(int j = 0; j < n; j++) {
                if(i == j) continue;
                Point b = points[j];
                if(a.x == b.x) {
                    if(a.y == b.y) dup++;
                    else vtl++;
                } else {
                    float k = (float)(a.y - b.y) / (a.x - b.x);
                    if(map.get(k) == null) map.put(k, 1);
                    else map.put(k, map.get(k) + 1);
                }
            }
            int max = vtl;
            for(float k: map.keySet()) {
                max = Math.max(max, map.get(k));
            }
            ret = Math.max(ret, max + dup);
        }
        return ret;
    }
}


目录
相关文章
|
2月前
|
存储 算法 索引
模拟算法题练习(二)(DNA序列修正、无尽的石头)
模拟算法题练习(二)(DNA序列修正、无尽的石头)
|
2月前
|
并行计算 算法 测试技术
模拟算法题练习(一)(扫雷,灌溉,回文日期)
模拟算法题练习(一)(扫雷,灌溉,回文日期)
|
9月前
|
算法
算法练习Day55|● 392.判断子序列 ● 115.不同的子序列
算法练习Day55|● 392.判断子序列 ● 115.不同的子序列
|
19天前
|
算法
算法系列--动态规划--背包问题(5)--二维费用背包问题(上)
算法系列--动态规划--背包问题(5)--二维费用背包问题(上)
20 0
|
5月前
|
算法 图形学
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
【头歌 计算机图形学 练习】多边形填充v1.0 (第1关:扫描线填充算法(活动边表AET法) 第2关:边缘填充法 第3关:区域四连通种子填充算法 第4关:区域扫描线种子填充算法)
181 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
91 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
44 0
|
4月前
|
存储 算法 搜索推荐
Leetcode算法题练习(一)
Leetcode算法题练习(一)
55 0
|
5月前
|
算法 数据可视化 图计算
基于二维小波变换的散斑相位奇异构造算法matlab仿真
基于二维小波变换的散斑相位奇异构造算法matlab仿真
|
5月前
|
机器学习/深度学习 数据采集 算法
【Python机器学习】PCA降维算法讲解及二维、高维数据可视化降维实战(附源码 超详细)
【Python机器学习】PCA降维算法讲解及二维、高维数据可视化降维实战(附源码 超详细)
64 1