MaxPointsOnALine
来源:互联网 发布:52kkm软件下载 编辑:程序博客网 时间:2024/06/04 18:05
public static int maxPoints(Point[] points) {Double k = 0.0;int max = 0;if (points.length != 0) {max = 1;}for (int i = 0, length = points.length; i < length - 1; i++) {HashMap<Double, Integer> map = new HashMap<>();int dup = 0;//记录重复点int ver = 0;//记录垂直点int sum = 0;for (int j = i + 1; j < points.length; j++) {k = ((double) points[i].y - points[j].y) / (points[i].x - points[j].x);//计算斜率if (k == -0.0) {k = 0.0;}//0.0=-0.0if (points[j].x == points[i].x && points[j].y != points[i].y) {ver++;//计算垂直点个数} else if (points[j].x == points[i].x && points[j].y == points[i].y) {dup = dup + 1;//计算重复点个数} else if (map.containsKey(k)) {map.put(k, map.get(k) + 1);//用map存储不同斜率对应点的个数} else {// k = ((double) points[i].y - points[j].y) / (points[i].x -// points[j].x);map.put(k, 2);}}if (map.size() == 0 && dup != 0) {dup++;sum = dup + ver;if (max < sum)max = sum;}for (Integer v : map.values()) {sum = v + dup;if (sum > max) {max = sum;}}if (ver != 0) {if(map.size()==0) ver++;sum = dup + ver;if (max < sum)max = sum;}}/* * for (Map.Entry<Double, Integer> entry : map.entrySet()) { * if(entry.getValue()>max){ max=entry.getValue(); } } */return max;}
//历尽千辛万苦呐。。。。。。下一个Action 阅读全文
0 0
- MaxPointsOnALine
- MaxPointsOnALine
- 数值的整次方
- Spring简单入门
- 正则表达式的回溯机制
- Const、volatile、mutable的用法
- cookie与session使用介绍
- MaxPointsOnALine
- Blend Modes——混合模式
- 关于QSettings的用法
- 【计网】物理层详解
- [RK3288][Android6.0] 调试笔记 --- 开机设置默认出厂时间方法
- 屏幕适配
- 【知识库】--spring ApplicationContext 扩展起始点-prepareBeanFactory-registerResolvableDependency(241)
- html&js的两种结合方式
- notepad++配置python编译运行环境