同一直线上最多点数

max-points-on-a-line

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

感谢各位大佬流光溢彩的代码。

求最大公约数的函数不需要有对调a、b的逻辑,否则会超时。(其实已经隐藏了对调逻辑)。

另外学会了map<pair<int, int> > myMap以及myMap[{a, b}]++的骚操作。

开心😄

class Solution {
public:
    /**
     *
     * @param points Point类vector
     * @return int整型
     */
    int maxPoints(vector& points) {
        // write code here
        int len = points.size();
        if (len <= 2) {
            return len;
        }
        int result = 0;
        for (int i = 0; i < len; ++i) {
            map<pair<int, int> > recordMap;
            int dup = 1;  // 自身也算一个点,另外重合点也算
            for (int j = i + 1; j < len; ++j) {
                int x = points[i].x - points[j].x;
                int y = points[i].y - points[j].y;
                if (x == 0 && y == 0) {
                    ++dup;
                } else {
                    int g = gcd(x, y);  // 获取最大公约数
                    x = x / g;
                    y = y / g;
                    recordMap[{x, y}]++;
                }
            }
            result = max(result, dup);
            for (auto it = recordMap.begin(); it != recordMap.end(); ++it) {
                result = max(result, it->second + dup);
            }
        }
        return result;
    }
    int gcd(int a, int b) {
        // 注意:此处如果加上判断a、b大小的逻辑会超时
        // 其实最下面👇隐含了对调a、b的功能
        /*if (a > b) {
            a = a + b;
            b = a - b;
            a = a - b;
        }*/
        return b == 0 ? a : gcd(b, a % b);
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

05-12 18:24
长安大学 UE4
因为是家里第一代大学生,报专业报学校都没人可以指导,只能自己看着来毕业找工作,父母只知道考公务员啊考教师啊,丝毫不考虑难度我说要去大城市打工才行,小县城对学历没有需求,开的工资都很低,两三千养活不了的结果都不同意我去大城市,觉得北上广深远,不稳定,一年到头不着家,养这么大孩子算白养了要我怎么办,不考公不考编就是死路一条呗,出去打工就是不孝呗可是考公考编也好难,考上也是小职员,到时候又变成了家里第一代体制内了,不还是样样靠自己有时候很羡慕同学,要去大城市打拼,家里都很支持去看看外面的世界也羡慕同学父母都是体制内的,考上还有所依靠家里没有办法给予帮助,简直是进入死胡同一样
Two_Shadow:你先拿到offer,路是自己走的,你真去了谁拦得住你呢,不用给自己扣帽子,我也是我家第一代大学生啊,农村人,高考96个志愿我就填50多个计算机,爸妈让我填满保底我说我不,我就学计算机,上大学了让我考研我说我不考,我就喜欢干活,现在签了offer,他们也释怀,不回家就努力提升自己,就往家里打钱,就开视频,还能怎么样呢,路是自己走的,他们只是希望你能走得好一点,但大部分父母,尤其是农村父母根本帮不了你什么,难道你就不走路了吗,希望能骂醒你,不要想太多做太少。
点赞 评论 收藏
分享
被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务