【程序员面试金典】在二维平面上,有一些点,请找出经过点数最多的那条线。

程序员面试金典——穿点最多的直线 题目描述 在二维平面上,有一些点,请找出经过点数最多的那条线。 给定一个点集vector p和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector,代表经过点数最多的那条直线的斜率和截距。 两层循环,将最大次数的斜率跟截距记录下来,依次判定即可 import java.util.*; /* public class P 阅读详情

题目描述

在二维平面上,有一些点,请找出经过点数最多的那条线。

给定一个点集vector<point>p和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector<double>,代表经过点数最多的那条直线的斜率和截距。</double></point>


/*
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) {
        // write code here
                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);
    }
};

 

招聘笔试题1_穿过同一条直线的点数目最大值 立即下载

相关推荐

rag综述——RAG技术发展流程、最新技术挑战与系统级优化

RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。

lovehu6686的博客 1240

Leetcode 1584. 连接所有点的最小费用

连接点 [x_i, y_i] 和点 [x_j, y_j] 的费用为它们之间的 曼哈顿距离 :|x_i – x_j| + |y_i – y_j| ,其中 |val| 表示 val 的绝对值。给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [x_i, y_i]。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。Python代码(Kruskal算法)(附并查集模板)最小生成树+Prim算法/Kruskal算法。Python代码(附Prim算法模板)

m0_51437455的博客 479

在Mac下配置用VSCode编写C/C++程序的环境

前言    最近需要编写一些C/C++程序,由于体量都不是很大所以想要追求一个轻量化的编辑和编译环境,于是想起了在Dock栏吃灰的VSCode。通过查找资料,包括VSCode的官方文档,最终配置实现了Mac下基于VSCode的C/C++编辑环境搭建。 正文    在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令可以查看是否安装了g++/clang编译器,本人两种编...

Kalikali的专栏 5万+

编程题—给定位于二维平面上的n个点,求出位于同一条直线上的最大点数

开始拿到这个题的时候,首先就会想到两点确定一条直线,若要判断相应的点是否在同一条直线上,仅需求出它们的斜率即可。 但是此题需注意的几点是:(1)当斜率不存在的情况:即(y2-y1)/(x2-x1)中(x2-x1)为0的情况。 (2)当斜率为0的情况:即(y2-y1)为0的情况。 ...

chengtutu的博客 1793

实战解析:利用Python requests库高效抓取京东商品评论并构建结构化数据集

本文详细介绍了如何利用Python requests库高效抓取京东商品评论并构建结构化数据集。通过分析京东评论接口、处理反爬机制以及数据解析存储,帮助开发者快速获取电商数据,适用于竞品监控、用户画像构建等商业场景。

weixin_42526415的博客 837

OpenClaw进阶实战(十二):电商比价工作流(一)——数据采集与竞品监控

本文介绍了基于OpenClaw的电商比价系统实现方案。该系统可自动化监控淘宝、京东、拼多多等平台的竞品价格波动,包含以下核心功能: 多平台价格采集:通过各平台官方API(淘宝客、京东联盟、多多进宝)获取商品价格,并提供模拟数据模式便于测试 数据存储与分析:使用SQLite存储历史价格数据,支持查询最近价格和价格变化趋势 模块化设计:采用技能化架构,分离了平台适配层(淘宝/京东/拼多多)、数据存储层和核心业务逻辑 扩展性:预留了价格波动告警接口(钉钉通知),为后续动态调价提供数据支撑 系统特点: 支持真实AP

PeterPan的博客 214

AE插件Hyper Slide全攻略:零基础掌握高效动画制作

在动态图形与视频后期制作领域,关键帧动画是构建运动效果的基础技术。其原理是通过在时间轴上定义属性的起始与结束状态,由软件自动计算中间过渡帧,从而实现物体的位移、缩放、旋转等变化。这项技术的核心价值在于将设计师的创意意图转化为精确、可控的视觉运动,极大地提升了动画制作的效率与表现力。在实际应用中,尤其是在UI/UX动效设计、数据可视化呈现以及社交媒体视频内容创作等场景中,流畅且富有节奏感的序列动画能够显著增强用户体验和信息传达效果。为了实现这类复杂的序列动画,如卡片流式滑入或文字交错出现,传统手动逐帧调整的方

weixin_34192816的博客 485

基于CANopen协议,实现机器人500-1000Hz高频控制(附实操实例) (1)

基于CANopen协议实现机器人500-1000Hz高频控制,核心不是“协议本身的性能极限”,而是“通过优化配置、硬件适配、软件调优,最大化发挥协议的实时性优势”。关键在于:以PDO为核心实现实时数据传输,以SYNC帧锁定高频同步周期,以精简冗余、优化硬件降低总线负载,同时通过实操调试解决周期漂移、延迟、干扰等问题。

start_up_go的博客 93

COJN 0485 800503寻找平面上的极大点

800503寻找平面上的极大点 难度级别:C; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B 试题描述 在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x>=a,y>=b;用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域...

weixin_30919429的博客 389

Openclaw接入大模型API,操作本地windows文件

本文介绍了在WSL2环境下配置OpenClaw使用阿里百炼API的方法。主要内容包括:1)确认WSL2安装完成;2)配置阿里百炼API(需注意Qwen3-Max-Thinking为收费模型);3)提供正确的JSON配置格式示例,强调apiKey必须填写真实值;4)说明配置错误需修改Linux配置文件;5)建议通过询问模型信息验证连接成功。后续将介绍如何切换免费API及本地文件访问功能。

qq_27246521的博客 989

OpenClaw实战三|电商自动化AI工具:自动上下架+智能客服+订单统计,小店运营效率直接翻3倍

对电商小团队、夫妻店、个人商家来说,最缺的不是流量,而是省时间的工具。OpenClaw这套电商自动化AI工具,不用懂代码、不用买昂贵的SaaS软件,一台服务器、简单配置,就能把最耗时间的工作全部交给AI。人只做最有价值的事:选品、拍图、搞流量、处理复杂售后,剩下的上下架、回复、统计,全都让AI帮你打工。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1459

程序员面试金典: 9.7数学与概率 7.6在二维平面上,有一些点,请找出经过点最多的那条线

#include #include #include #include using namespace std; /* 问题:在二维平面上,有一些点,请找出经过点数最多的那条线。 分析:暴力破解,共有n(n-1)/2 条直线,对每个直线,判断剩余n-2个点是不是在直线上 总时间复杂度为O(n^3)。 可能需要排除某些线段,不是所有线段。 或者是求闭包,闭包问题记

qingyuanluofeng的专栏 850

NTN(三) Timing

这篇看下k_offset和k_mac,如38.300所述,k_offset是配置的调度偏移量,需要大于或等于service link RTT和Common TA之和;k_mac 是配置的偏移量,需要大于或等于 RP 和 gNB 之间的 RTT。 相关参数会通过RRC层NTN-config配置,其中的cellSpecificKoffset-r17和kmac-r17主要用于各种Timing场景的偏移。 kmac:如果DL和UL frame timing 在 gNB端未对齐,网络端

asd199086的博客 4826

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

1. 题目 给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]。 请找出一条直线,其通过的点的数目最多。 设穿过最多点的直线所穿过的全部点编号从小到大排序的列表为S,你仅需返回[S[0],S[1]]作为答案 若有多条直线穿过了相同数量的点,则选择S[0]值较小的直线返回,S[0]相同则选择S[1]值较小的直线返回。 示例: 输入: [[0,...

Michael是个半路程序员 1051

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

穿点最多的直线 牛客网 程序员面试金典 C++

穿点最多的直线 牛客网 程序员面试金典 C++ 题目描述 在二维平面上,有一些点,请找出经过点数最多的那条线。 给定一个点集vectorp和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector,代表经过点数最多的那条直线的斜率和截距。 C++ /* struct Point { int x; int y; Point() : ...

DarrenXf的专栏 361

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【程序员面试金典】面试题 16.14. 最佳直线

【程序员面试金典】面试题 16.14. 最佳直线

❀雾里看花花里看雾❀ 155

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

程序员面试金典:平分的直线、穿点最多的直线

1.平分的直线 题目描述 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2

热爱技术、喜欢学习、乐于分享 583

程序员面试金典 16.14

Best Line:给定平面上n个点,找出一条直线,使其通过的点数最多。 书上的解法:求出两两相连后的斜率,平行线归为一类,在平行线中找重合的直线。由于浮点数误差的关系,斜率差值小于epsilon的也算做平行线。 我先把书上的写法用C++提交了一遍,60个测试用例过了54个,第55个超时了。 class Solution { static bool equal(const double d1, const double d2) { return abs(d1 - d2) &l

RayoNicks的博客 331

程序员面试金典84题之每日7题 - 第六天

第一题:平分的直线 题目: 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。 给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。 测试样例: [(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2,1)] 返回:[0.0,...

weixin_43022263的博客 356

java程序员面试金典 4.2

2. 在二维平面上,有一些点,请找出经过点数最多的那条线。 给定一个点集vectorp和点集的大小n,没有两个点的横坐标相等的情况,请返回一个vector,代表经过点数最多的那条直线的斜率和截距 //当时觉得情况太多就放弃了//思路: 用任意两个点去确定一条直线,以斜率和截距为key,出现次数为value,存在hashmap中,最终选次数最多的即可。//面向对象的编程思想impor

多多 326

2018年力扣高频算法面试题1数学&位运算

目录友链1、只出现一次的数字2、直线上最多的点数【需二刷】3、分数到小数【需二刷】4、阶乘后的零5、缺失数字6、3的幂7、颠倒二进制位【需二刷】Sum of Two Integers 友链 2018年力扣高频算法面试题汇总 题解参考-github1 题解参考-github2 1、只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 要求:线性时间复杂度、不使用额外空间 解答:典型的位运算,相同的两个数异或为0,扩展形式为,找出给定

会哭的孩子有奶喝 373

2024年Android最全阿里、华为、字节跳动,大厂面试算法题,这些你会吗(2),android界面开发工具

文章会持续更新的。绝对干货!!!Android进阶学习全套手册关于实战,我想每一个做开发的都有话要说,对于小白而言,缺乏实战经验是通病,那么除了在实际工作过程当中,我们如何去更了解实战方面的内容呢?实际上,我们很有必要去看一些实战相关的电子书。

2301_82242326的博客 1080

doocs/leetcode 几何算法

还在为LeetCode几何算法题目头疼吗?一文带你掌握doocs/leetcode中几何算法的核心解题技巧!本文将深入解析三个经典几何算法题目:矩形面积II、直线上最多的点数、矩形面积,通过详细的代码示例、流程图和表格对比,让你彻底理解几何算法的精髓。 ## ???? 几何算法概述 几何算法是计算机科学中处理几何图形和空间关系的重要分支,在LeetCode中主要涉及点、线、面等基本几何元素的计算和...

gitblog_01102的博客 803

面试半年,拿到了腾讯 阿里 百度 微软四个大厂offer,强烈建议你们看看这份学习大纲!

前言 这周高强度面试 周一上午面微软 等了半天没人,被放鸽子 周二晚上阿里一面 约了7点,实际七点15开始 面试官一说话就感觉很温柔, 自我介绍,讲了讲算法竞赛和对算法竞赛的兴趣 然后问你觉得最酷的数据结构是啥 回最喜欢的行吗 从O(1)Union O(n)Connected开始 讲了 路径压缩和按秩合并 到了O(1)Union O(α(n)) 复杂度证明讲了讲这个难度很大,没有追问。 然后做题 最大和子序列比较easy 然后写完了然后写错了一大堆地方 然后直接让他看了被挑出一堆问题… 仔细改了改只剩了一个

weixin_53184798的博客 458

算法合集草稿

http://blog.youkuaiyun.com/yunzhongguwu005/article/details/9270085 #include #include #include "stdlib.h" using namespace std; typedef struct BiNode { char data; struct BiNode *lchild; struct Bi

fdsafwagdagadg6576的专栏 2246

C++实现最近点对分治算法:从暴力解法到O(n log n)优化

最近点对问题是计算几何中的经典问题,旨在寻找平面上一组点中距离最近的两个点。其核心原理是通过分治策略,将问题递归分解为更小的子问题,再合并结果,从而将时间复杂度从暴力解法的O(n²)优化至O(n log n)。该算法在工程实践中具有重要价值,尤其在处理大规模点集时能显著提升性能。其应用场景广泛,包括图形处理中的碰撞检测、地理信息系统(GIS)的邻近搜索以及游戏物理引擎的优化。本文以C++实现为例,详细解析分治算法的代码实现,并探讨在VSCode环境下的调试技巧与性能优化方法,帮助开发者深入理解算法细节并应用

weixin_30887919的博客 306
上一篇: 【程序员面试金典】在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。
下一篇: 【程序员面试金典】有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。
HelloZEX
博客等级 码龄11年 486粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值