Solution1:

严谨的正确答案为leetcode 149.
https://blog.csdn.net/Allenlzcoder/article/details/82154994
此贴中的答案漏洞极多!
参考网址:https://www.nowcoder.com/profile/250145/codeBookDetail?submissionId=12700731
思路:这个思路的代码比较简洁。思想是穷举完每两个点,同时算出一组斜率和截距,最后统计所有的<斜率,截距>对,找出数目最多的即可。复杂度为O(n2)O(n^2)O(n2),这要比每两个点算出斜率后,再去算哪个点在直线上要简洁的多。
注意map,pair和make_pair的用法!。

/*
struct Point {int x;int y;Point() :x(0), y(0) {}Point(int xx, int yy) {x = xx;y = yy;}
};*/
class DenseLine {
public:vector<double> getLine(vector<Point> p, int n) {map<pair<double, double>, int > lines;for(int i = 0; i < n; i++){for(int j = i+1; j < n; j++){++lines[calLine(p[i],p[j])];}}auto it = lines.begin();auto maxLine = it;int max = 0;while(it != lines.end()){if(it->second > max) maxLine = it;it++;}vector<double> res;res.push_back(maxLine->first.first);res.push_back(maxLine->first.second);return res;}//计算斜率pair<double, double> calLine(Point p1,Point p2){double k = (double)(p1.y - p2.y)/(double)(p1.x - p2.x);double s = (double)p1.y - (double)k*p1.x;return make_pair(k,s);}
};

程序员面试金典——7.6穿点最多的直线相关推荐

  1. 程序员面试金典 - 面试题 16.14. 最佳直线(哈希map+set)

    1. 题目 给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]. 请找出一条直线,其通过的点的数目最多. 设穿过最多点的直线所穿过的全部点编号 ...

  2. 程序员面试金典 - 面试题 05.08. 绘制直线(位运算)

    1. 题目 绘制直线.有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里. 屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽 ...

  3. 双栈排序 牛客网 程序员面试金典 C++ Python

    双栈排序 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中. ...

  4. 程序员面试金典--第k个数

    程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...

  5. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  6. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  7. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

  8. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  9. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

最新文章

  1. matlab在测量数据处理中的应用,MATLAB在测量数据处理中的应用
  2. Ubuntu16.04下安装sogou输入法
  3. 20. matlab 中的gtext 函数
  4. 汇编语言整数加减法示例
  5. java中的重写与重载_java中的重写与重载
  6. git hok json_从战中反弹:将Git提交信息作为JSON返回
  7. 4-数组、指针与字符串1.4-动态内存分配
  8. pureftpd 如何修改管理员密码
  9. C语言-输入十进制数转换为二进制数
  10. LeetCode5 最长回文子串
  11. memcached SASL验证状态安全绕过漏洞
  12. 【图像变换】基于matalb DIBR-3D图像变换【含Matalb源码 082期】
  13. java计算机毕业设计房产中介管理系统源码+系统+lw+数据库+调试运行
  14. mq相关的面试突击笔记 大神公众号“石杉的架构笔记
  15. 基于Linux的及时通信软件
  16. 应用软件安全编程资源使用安全
  17. linux的文件系统及vim编辑器系统指令
  18. oracle-ORA的原理
  19. mysql查询手机号199开头_从今天起,你将能用上199开头的手机号了……
  20. 系统认证风险预测方案总结

热门文章

  1. C++之---class 的三种访问修饰符( public、private、protected )
  2. 使用python对文件下的文件批量重命名
  3. 输入课程信息的C语言代码,[源码和文档分享]基于C语言的课程信息管理系统
  4. 用python绘制用例图源代码_Python设计模式 - UML - 用例图
  5. sftp访问_实时数据处理探索:接收、处理、访问
  6. mysql监听串口_tcp与串口透传(select)
  7. python 人工智能课程对孩子的好处_少儿编程有什么好处?儿童编程课程学习Python的4大原因...
  8. python高性能_Python高性能分布式执行框架-Ray
  9. python 小程序搜索排名-用python2.7.9 写个小程序搜索某个目录下行有某关键字
  10. c语言成颖pdf,程序设计语言开篇导学.ppt-资源下载在线文库www.lddoc.cn