leetcode难度级别_直线上最多的点数

leetcode难度级别_直线上最多的点数给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +————->0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:^|| o| o o| o| o o+—–

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。

示例 1:

输入: [[1,1],[2,2],[3,3]]
输出: 3
解释:
^
|
|        o
|     o
|  o  
+------------->
0  1  2  3  4
示例 2:

输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
输出: 4
解释:
^
|
|  o
|     o        o
|        o
|  o        o
+------------------->
0  1  2  3  4  5  6
const double eps = 1e-10;
const int N = 1e3 + 10;
bool cmp(const double &a,const double &b){ 

return abs(a - b) < eps;
}
struct Node{ 

double k;
Node(double _k){ 

k = _k;
}
bool operator<(const Node &b)const{ 

if(cmp(k,b.k))return false;
else return k < b.k;
}
};
class Solution { 

public:
map<Node,int>m;
int maxPoints(vector<vector<int>>& points) { 

int ans = 0;
int n = points.size();
if(n == 1 || n == 0)return n;
for(int i = 0;i < n;i ++){ 

m.clear();
int same = 0;
for(int j = 0;j < n;j ++){ 

if(j == i)continue;
int x1 = points[i][0],y1 = points[i][1];
int x2 = points[j][0],y2 = points[j][1];
if(x1 == x2){ 

same ++;
continue;
}
Node t(double(y1 - y2) / (x1 - x2));
if(m.find(t) == m.end())m[t] = 0;
m[t] ++;
}
for(auto &a : m){ 

ans = max(ans,a.second);
}
ans = max(ans,same);
}
return ans + 1;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168550.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来[通俗易懂]

    详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来[通俗易懂]  从本文开始,在之后的一段时间里,我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,本文作为本系列的第一篇文章,主要介绍如何让小车动起来。一、硬件的选择  1、底盘和电机   底盘的形状呢,大家可以按照自己的需要自主选取,至于电机关注一下工作电压,转速,电机类型就差不多,对于新手,可以尝试以下样式(4WD智能小车底盘,附带4个直流减速电机,电机接线需要自己焊接),也就是本文例子采用的底盘和电机,组装简单,使用方便,特别适合新手。  2、电机驱动模块   

  • 简述ajax的实现原理_fluidsim实例讲解

    简述ajax的实现原理_fluidsim实例讲解AJAX即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。解决传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页页面。

  • renren-fast 与 renren-fast-vue 与 renren-generator 基本操作[通俗易懂]

    renren-fast 与 renren-fast-vue 与 renren-generator 基本操作[通俗易懂]一、前言公司主打产品的,近来发现了一款快速完成前后端CRUD的框架renren-fast,打算用它来“刷”小型的外包,积攒资金。个人觉得,renren-fast主要面向后台开发者,使用方式和Guns类似:使用Guns自动生成SpringBoot+LayUI的后台管理系统①由于完整开发文档需要费用,②前端使用vue,有的后台开发者不清楚。笔者参考了…

  • MySQL数据库常见面试题总结

    MySQL数据库常见面试题总结

  • Linux WIFI优先连接5G频段「建议收藏」

    Linux WIFI优先连接5G频段「建议收藏」最近遇到一个项目,要求树莓派无线优先连接5G,目前测试了一个方法,先记录下来,测试下来是有用的。现场无线网络知识2.4G和5G双频,SSID和密码都是相同的,树莓派在这个环境中,优先连接2.4G网络。由于2.4G网络干扰问题,网络通讯不稳定,因此需要树莓派优先连接到5G网络。有查到通过修改wpa_supplicant.conf文件中,定义frep_list的频点值,可以修改单独连接到5WIFI.后来经过测试,将5G频段排序到2.4G频段之前,无线会优先连接5G网络,如果5G网络不可用,也可以连接到

    2022年10月20日
  • python自然语言处理情感分析_人工智能拥有感情

    python自然语言处理情感分析_人工智能拥有感情从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了CNN实现中文文本分类的过程,并与贝叶斯、决策树、逻辑回归、随机森林、KNN、SVM等分类算法进行对比。这篇文章将详细讲解通过自定义情感词典(大连理工词典)实现情感分析和情绪分类的过程,并与SnowNLP进行对比,为后续深度学习和自然语言处理(情感分析、实体识别、实体对齐、知识图谱构建、文本挖掘)结合做基础,希望对您有所帮助~

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号