【LeetCode: 149. 直线上最多的点数 + 模拟遍历】

LeetCode149——直线上最多的点数 我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/max-points-on-a-line/description/ 题目描述: 知识点:哈希表、欧几里得最大公约数算法 思路:用分数形式存储直线的斜率,切勿忘记斜率不存在的情况 (1)新建一个长度为点的数量... 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🚩 题目链接

⛲ 题目描述

给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。

示例 1:

在这里插入图片描述

输入:points = [[1,1],[2,2],[3,3]]
输出:3
示例 2:
在这里插入图片描述

输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]
输出:4

提示:

1 <= points.length <= 300
points[i].length == 2
-104 <= xi, yi <= 104
points 中的所有点 互不相同

🌟 求解思路&实现代码&运行结果


⚡ 三重循环枚举

🥦 求解思路
  1. 判断三个点是否在同一条直接上,我们只需要判断俩俩之间的斜率是否相等即可。所以,我们通过三重循环取枚举每一个点的坐标。然后去寻找在同一条直线上最多的点,每次更新答案,最终返回ans。
  2. 注意边界:开始的时候,任意一个点是可以在任意一条直线上的,初始化为1。
  3. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {
    public int maxPoints(int[][] points) {
        int m = points.length;
        if (m == 0 || points == null)
            return 0;
        int max = 1;
        for (int i = 0; i < m; i++) {
            for (int j = i + 1; j < m; j++) {
                int cnt = 2;
                int x1 = points[i][0], y1 = points[i][1], x2 = points[j][0], y2 = points[j][1];
                for (int k = j + 1; k < m; k++) {
                    int x3 = points[k][0], y3 = points[k][1];
                    int num1 = (y2 - y1) * (x3 - x2);
                    int num2 = (x2 - x1) * (y3 - y2);
                    if (num1 == num2) {
                        cnt++;
                    }
                }
                max = Math.max(max, cnt);
            }
        }
        return max;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

leetcode 149题汇总 适合进行算法思维的练习 基本属于easy题目,medium和hard的题目比较少 但是比较适合最开始的练习 适合进行算法思维的练习 基本属于easy题目,medium和hard的题目比较少 但是比较适合最开始的练习 立即下载

相关推荐

LatentSync:开源数字人唇形同步技术的实战部署与优化指南

本文详细介绍了开源数字人唇形同步工具LatentSync的实战部署与优化全流程。从核心原理(潜在扩散模型与TREPA技术)解析,到手把手完成环境搭建、模型获取及首次推理。文章深入探讨了自定义素材处理、关键参数调优(如guidance_scale),并提供了显存不足、人脸检测失败等常见问题的解决方案与性能优化技巧,旨在帮助用户高效部署并提升生成效果。

9o8p7i6u5y的博客 1007

Leetcode(149)——直线上最多的点数

Leetcode(149)——直线上最多的点数 题目 给你一个数组 pointspointspoints ,其中 points[i]=[xi,yi]points[i] = [xi, yi]points[i]=[xi,yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points = [[1,1],[2,2],[3,3]] 输出:3 示例 2: 输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]] 输出:4 提示

KCDCY的博客 1150

手把手教你利用qemu搭建银河麒麟V11 arm环境

在Windows环境下,初学者或企业用户常通过VMware、VirtualBox等虚拟机软件安装Ubuntu、Red Hat等Linux系统,这类工具更侧重X86等复杂指令集架构(CISC,常见于Intel、AMD处理器)的虚拟化。而QEMU是一款开源的虚拟机监视器与模拟器,核心优势在于可模拟ARM、MIPS、RISC-V等精简指令集架构(RISC)的处理器并提供虚拟化能力,更适合对虚拟化技术有一定了解的用户。可能是电脑性能问题,安装过程比较慢,需要耐心等待。等操作系统下载完成后,进行安装了。

huanhuanzhou blog 2455

leetcode:149. 直线上最多的点数

代码】leetcode149.直线上最多的点数。

OceanStar的博客 299

CentOS7下Ollama部署全攻略:从安装到自定义端口配置(附国内加速技巧)

本文详细介绍了在CentOS7系统上部署Ollama的完整流程,包括环境准备、模型下载优化、服务化部署及端口配置等关键步骤。特别针对国内网络环境提供了加速安装方案和镜像源配置技巧,帮助开发者快速搭建稳定的本地AI运行环境。

mmm90的博客 287

LIGGGHTS颗粒模拟入门:从DEM原理到工程实践

离散元法(DEM)是一种用于模拟颗粒物质行为的数值方法,其核心原理是通过计算每个颗粒的运动和相互作用来预测颗粒系统的宏观行为。该方法基于牛顿第二定律和接触力学模型,能够精确描述颗粒间的碰撞、摩擦和粘结等微观机制。在工程实践中,DEM技术为优化工业设备设计、预测材料流动和减少实验成本提供了重要价值。它广泛应用于制药造粒、矿石破碎、粉体输送和农业加工等领域,帮助工程师和研究人员深入理解颗粒系统的复杂动力学。LIGGGHTS作为一款基于LAMMPS的开源DEM软件,继承了其高效的并行计算架构,并针对颗粒模拟进行了

weixin_33979203的博客 418

LeetCode----149. 直线上最多的点数

java 代码

JustinMars的博客 487

1.毫米波雷达心率、呼吸原理实现(一)实例

毫米波雷达心率、呼吸检测原理本项目分两到三篇文章写完,第一阶段借鉴TI开源项目以及根据自己的见解适当更改信号处理链通过AWR1843汽车雷达传感器和DCA1000采集卡采集数据完成人体呼吸和心跳检测算法的实现。第二阶段将仿真成功的代码搬移TIAWR1843传感器并通过串口数据实现生命体征的实时处理。本文即为第一阶段实现过程。本文首先概述毫米波雷达呼吸心跳检测的原理,紧接着概述本项目信号处理流程,另外本项目第一阶段通过matlab仿真验证算法的有效性,仿真源码可关注小编并私信可取。1.概述。

Poulen的博客 2万+

Leetcode 149:直线上最多的点数(最详细的解法!!!)

给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o +-------------&gt; 0 1 2 3 4 示例 2: 输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]] 输出: 4 解释: ^ ...

coordinate的博客 5491

Robocup 仿真2D 学习笔记(二) 球队代码编译和上场

环境的一些问题 最近在使用rcssserver 和 rcssmonitor时可能会遇到./configure失败的问题,可以检查一下文件夹是否有makefile文件,如果是编译后的包直接sudo make install,如果还不行,还可以源码下载编译 rcssserver: https://sourceforge.net/projects/sserver/files/rcssserver/...

markchalse的博客 6014

SD - WAN:企业出海的网络加速器

例如,一家中国的跨境电商企业,在欧美市场的促销活动期间,借助 SD - WAN 技术,即使面对海量订单数据的交互,也能确保欧美客户在浏览商品、下单支付时感受到近乎本地网络的流畅体验,大大提升了客户满意度,稳住了销售增速。企业无需在海外本地部署大量冗余服务器,只需依托云台,借助 SD - WAN 快速稳定的网络连接,即可轻松实现业务拓展,进一步精简运营架构,提升整体效能。在未来,随着技术的不断演进和企业出海需求的持续增长,SD - WAN 将持续赋能,助力更多企业在全球市场扬帆远航,书写辉煌篇章。

idcicp_com的博客 446

【LeetCode】149. 直线上最多的点数

2021.6.24号每日一题 文章目录题目链接题目简介题目解析题目代码 题目链接 149. 直线上最多的点数 题目简介 给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points = [[1,1],[2,2],[3,3]] 输出:3 题目解析 给定一些点,求哪些点在一条直线上 常见的做法有两种: 第一种:计算每个点和其他点的斜率比(y2 - y1)/ (x2 - x1),将斜率比按 .

爱敲代码的小黄 574

07 Zabbix 微信告警

Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server....

Jian Sun_的博客 1297

玩转力扣 - LeetCode进度倒计数表

玩转力扣 - LeetCode进度倒计数表 快速搜索题号、题解、代码、标签等,请善用 Ctrl+F(或者 Command+F)。 ps: 前600题中有120个加锁题(120????/前600) 题号 题目 有无锁 标签 难度 代码 AC状态 10 正则表达式匹配 递归, 字符串, 动态规划 困难 32 最长有效括号 栈, 字符串, 动态规划 困难 37 解数独 数组, 回溯, 矩阵 困难 40 组合总和 II 数组, 回溯 中等 42 接

极客学长Bravo | 突破信息差 | 副业生财有术 1556

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LeetCode刷题:其他

其他模拟乘法149.直线上最多的点树模拟幂次原地hash位运算191.位1的个数 模拟乘法 不能直接用Long,问题在于会出现溢出的情况。 只能手动模拟相乘的情况 class Solution { public String multiply(String num1, String num2) { if (num1.equals("0") || num2.equals("0")) { return "0"; } String

weixin_38370441的博客 227

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LeetCode算法题目录101-150

101. 对称二叉树 45.2% 简单 102. 二叉树的层次遍历 53.6% 中等 103. 二叉树的锯齿形层次遍历 46.8% 中等 104. 二叉树的最大深度 67.2% 简单 105. 从前序与中序遍历序列构造二叉树 55.9% 中等 106. 从中序与后序遍历序列构造二叉树 58.1% 中等 107. 二叉树的层次遍历 II ...

Alex的博客 501

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

力扣1037题解析:向量叉积法高效判断三点共线

在计算几何与算法设计中,判断点集间的空间关系是基础且高频的需求。其核心原理常基于向量运算,例如通过计算向量叉积可以精确判断多个点是否共线,而无需处理浮点数精度问题。这一技术价值在于将几何问题转化为稳定的整数运算,确保了算法的鲁棒性与效率。在算法刷题、图形学碰撞检测、路径规划等应用场景中,此类判断至关重要。本文以力扣(LeetCode)第1037题“有效的回旋镖”为例,深入讲解如何利用向量叉积法高效解决三点共线判断问题,并对比分析了斜率法可能遇到的浮点数精度和除零错误等常见陷阱,帮助读者掌握既严谨又易于实现的

weixin_34413802的博客 421

LeetCode 刷题记录

1.两数之和等于target。用哈希表。 15.三数之和等于target。 19.删除链表的倒数第N个节点。设置一个dummy节点指向头结点,快指针移动N个节点,然后快慢指针一同移动。 20.三种括号是否正确匹配。用栈。 31.求全排列的下一个数。从右到左找到第一个上升的位置k:k+1,从右到左找到比元素k大的j,交换元素jk,逆序k之后的数。 42.直方图接雨水。用双指针从两边往中间遍...

勤奋乐观的博客 536

【学习笔记】【C++】【Leetcode 分门别类讲解】

目录概述一、时间复杂度分析二、数组问题。 概述 一、时间复杂度分析 图的遍历:邻接表实现 :O(e+V) ;邻接矩阵实现O(e2) ;e为节点数,V为边数。 字符串数组,先对字符串排顺序,再将数组按照字典序排序:时间复杂度:O( nslogs+snlogn),因为排序n个字符串+n个字符串的排序(字符串也得遍历一遍) 均摊时间复杂度问题: 对动态数组的扩容和缩容来说,均摊下去时间复杂度只是O(1);所以造成动态数组的操作,整体的均摊时间复杂度为O(1); 但是要注意用lazy resize,避免复杂

多丰富下自己呀 1596

数据结构-哈希表(持续更新、整理)

两数之和:leetcode-1 无重复字符的最长子串:leetcode-3 罗马数字转整数:leetcode-13 串联所有单词的子串:leetcode-30 有效的数独:leetcode-36 只出现一次的数字 II:leetcode-137 复制带随机指针的链表:leetcode-138 LRU 缓存机制:leetcode-146 直线上最多的点数:leetcode-149 回旋镖的数量:leetcode-447 根据字符出现频率排序:leetcode-451 LFU 缓存:le.

shushi6969的博客 340

LeetCode 149. 直线上最多的点数 / NC14 二叉树的之字形层序遍历 / NC37 合并区间

149. 直线上最多的点数 2021.6.24每日一题 题目描述 给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points = [[1,1],[2,2],[3,3]] 输出:3 示例 2: 输入:points = [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]] 输出:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.co

windyjcy的博客 289

【leetcode】149.直线上最多的点数 (三种解法,数学题,java实现)

149. 直线上最多的点数 难度困难 给定一个二维平面,平面上有 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 |

Viper的程序员修炼手册 886

LeetCode题库-149题-直线上最多的点数

这个题目在leetcode上面居然是一个困难题,但是实现思路非常简单,就是暴力算法,把每条直线循环出来,然后依次判断其他点在不在直线上,其中判断的时候用的是乘法,也就是三个点,两两斜率相等以后,通过十字交叉之后得到的等式,这样可以避免java整型相除时带来的误差,也就更加精确吧。

2302_77468369的博客 265

LeetCode第149题_直线上最多的点数

给定一个数组points,其中表示 X-Y 平面上的一个点,求最多有多少个点在同一条直线上。

qq_40263592的博客 1131

LeetCode 149, 347, 31

讲解了数学、优先队列、技巧相关的题目。

qq_61350148的博客 1060

[LeetCode] 149、直线上最多的点数

题目描述 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o +-------------> 0 1 2 3 4 解题思路 思路:固定一点,找其他点和这个点组成直线,,统计他们的斜率! 这里有一个重点: 求斜率,用两种方法:(题解,评论...

aift的专栏 256
上一篇: 【LeetCode: 2575. 找出字符串的可整除数组 + 模拟】
下一篇: 【LeetCode: 211. 添加与搜索单词 - 数据结构设计 + 前缀树】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值