穿点最多的直线
来源:互联网 发布:穿越火线软件图标 编辑:程序博客网 时间:2024/04/27 00:53
思路分析:每2个点计算斜率和截距并包装成为一个对象,加入map,统计个数,最后找出最高的。
代码如下:
import java.util.*;/*public class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } public Point() { this.x = 0; this.y = 0; }}*/public class DenseLine { public double[] getLine(Point[] p, int n) { HashMap<Line,Integer> lineNum=new HashMap<Line,Integer>(); int max=0; double slope=Double.POSITIVE_INFINITY,intercept=0; //把所有线取出来求出斜率和截距,并用哈希图存储下线条和个数的键值对 for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ double k=(double)(p[j].y-p[i].y)/(p[j].x-p[i].x); double b=(double)(p[i].y-k*p[i].x); Line line=new Line(k,b); if(lineNum.containsKey(line)){ int num=lineNum.get(line)+1; lineNum.put(line,num); //不断调整最大值 if(num>max){ max=num; slope=k; intercept=b; } } else lineNum.put(line,1); } } return new double[]{slope,intercept}; // write code here }}class Line{ double k; double b; Line(double k,double b){ this.k = k; this.b = b; } public boolean isEqualValue(double a,double b){ return (Math.abs(a-b)<0.00001); } public boolean equals(Object object){ if(object instanceof Line) { if(isEqualValue(k,((Line)object).k)&&isEqualValue(b,((Line)object).b)) return true; return false; } return super.equals(object); } public int hashCode(){ String str = String.valueOf(k)+String.valueOf(b); return str.hashCode(); } }
代码下载:我的github
0 0
- 穿点最多的直线
- 程序员面试金典:平分的直线、穿点最多的直线
- 程序员面试金典——穿点最多的直线
- 覆盖最多的直线上的点
- 直线上最多的点的个数
- 1.10 找经过点最多的直线
- 二维坐标系同一条直线点最多
- leetcode钻研3 串最多点的直线上面点的个数(二维)
- 题目1548:平面上的点:直线穿过最多点(不应该这样AC吗?)
- 求一条直线经过一个直角坐标系里m个点最多点的点数
- 求一条直线上能包含的最多数量的点
- 同一直线上最多的点的个数——Leetcode系列(三)
- UVA 11227 The silver bullet.(简单题:枚举经过最多的点的直线)
- POJ 1118+2606+2780(同一直线上点最多的数目)
- 找出穿过最多点的直线 Max Points on a Line
- 求穿过平面上最多点的直线(设计思想)
- 3.max-points-on-a-line 直线上的最多点
- Leetcode 149 穷举法找出坐标系点集所成直线中涵盖点最多的一条
- U3D 0817
- Lock锁,一次唤醒所有线程低性能的问题
- Android开发能够帮你更好开发的19个开发工具
- 数组分组代码模拟
- Spring 框架简介
- 穿点最多的直线
- 小曹学spring--使用Spring JDBC访问数据库
- 记在这次HAProxy配置中遇到的问题
- Android接口回调二
- post 请求
- POJ 1035 Spell checker
- FZU 1021 飞船赛
- 【JZOJ 4711】Binary
- poj 3292 Semi-prime H-numbers