LC149 - 多少个点位于同一条直线上

多少个点位于同一直线

http://www.nowcoder.com/questionTerminal/bfc691e0100441cdb8ec153f32540be2

前2个for确定斜率
第3个for统计等于斜率的点数

import java.util.*;

/*
 * public class Point {
 *   int x;
 *   int y;
 * }
 */

public class Solution {
    /**
     * 
     * @param points Point类一维数组 
     * @return int整型
     */
    public int maxPoints (Point[] points){
        // write code here
        if(points == null|| points.length == 0){
            return 0;
        }
        if(points.length == 1 || points.length == 2){
            return points.length;
        }
        int res = 0;
        for(int i = 0 ; i < points.length - 1; ++i){
            int a = points[i].x;
            int b = points[i].y;
            for(int j = i + 1; j < points.length; ++j){
                int aa = points[j].x - a;
                int bb = points[j].y - b;
                int count = 0;
                if(aa == 0 && bb == 0){
                    for(int k = 0; k < points.length; ++k){
                        if(points[k].x == a && points[k].y == b){
                            count++;
                        }
                    }
                }else{
                    for(int k = 0; k < points.length; ++k){
                        if((points[k].x - a)*bb == (points[k].y - b) * aa){
                            count++;
                        }
                    }
                }
                res = Math.max(res, count);
            }
        }
        return res;
    }
}
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务