Golang | Leetcode Golang题解之第149题直线上最多的点数

news2024/12/24 9:41:28

题目:

题解:

func maxPoints(points [][]int) (ans int) {
    n := len(points)
    if n <= 2 {
        return n
    }
    for i, p := range points {
        if ans >= n-i || ans > n/2 {
            break
        }
        cnt := map[int]int{}
        for _, q := range points[i+1:] {
            x, y := p[0]-q[0], p[1]-q[1]
            if x == 0 {
                y = 1
            } else if y == 0 {
                x = 1
            } else {
                if y < 0 {
                    x, y = -x, -y
                }
                g := gcd(abs(x), abs(y))
                x /= g
                y /= g
            }
            cnt[y+x*20001]++
        }
        for _, c := range cnt {
            ans = max(ans, c+1)
        }
    }
    return
}

func gcd(a, b int) int {
    for a != 0 {
        a, b = b%a, a
    }
    return b
}

func abs(x int) int {
    if x < 0 {
        return -x
    }
    return x
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《NVIDIA-Jetson AGX Orin》移除或临时忽略 NVIDIA 仓库

阿丹&#xff1a; 开发的过程中出现了一些问题&#xff0c;在下载以及安装docker的时候&#xff0c;明明已经修改到了阿里云的国内镜像&#xff0c;但是还在下载的时候去访问了英伟达的下载仓库。在国内网络环境就会导致下载失败&#xff0c;网络不可达&#xff0c;本文章记录一…

现在Java行情不好可以转.net吗?

转向.NET开发可能是一个选择&#xff0c;但要注意以下几点。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 技术转…

好书推荐:生成式AI入门与AWS实战

这本书给LLM的爱好者者提供了完整的学习路线&#xff0c;让读者从使用大语言模型开始到剖析常用的技术概念&#xff0c;能够填补了机器学习爱好者从传统的文字处理到大语言模型的空白知识&#xff0c;包括显存计算优化&#xff0c;微调&#xff0c;RAG&#xff0c; 多模态&…

电池包断路单元DBU的预充电电阻应用案例

当电池组接触器闭合到电机和逆变器上时&#xff0c;逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化&#xff0c;并可能永久损坏接触器。 因此&#xff0c;当我们关闭电池组上的接触器时&#xff0c;我们分三个步骤执行此操作&#xff1a; 1.关闭主负极…

【机器学习】鸢尾花分类:机器学习领域经典入门项目实战

学习机器学习&#xff0c;就像学习任何新技能一样&#xff0c;最好的方法之一就是通过实战来巩固理论知识。鸢尾花分类项目是一个经典的入门项目&#xff0c;它不仅简单易懂&#xff0c;还能帮助我们掌握机器学习的基本步骤和方法。 鸢尾花数据集&#xff08;Iris Dataset&…

NLP入门——基于TF-IDF算法的应用

从json格式数据中抽出句子和标签 首先查看json格式的数据文件&#xff1a; :~/nlp/tnews/src$ less train.json可以看到json字符串表示一个对象&#xff0c;我们利用json.loads() 函数会将其转换为一个 Python 字典。docs python json #ext.py #encoding: utf-8import sys f…

计算机网络 —— 应用层(DNS域名系统)

计算机网络 —— 应用层&#xff08;DNS域名系统&#xff09; 什么是DNS域名的层次结构域名分类 域名服务器的分类域名解析方式递归查询&#xff08;Recursive Query&#xff09;迭代查询&#xff08;Iterative Query&#xff09;域名的高速缓存 我们今天来看DNS域名系统 什么…

Qt调用第三方库的通用方式(静态链接库.a或.lib、动态链接库.dll)

目录 一、前提 二、如何引用静态链接库 三、如何引用动态链接库 四、示例代码资源 在开发项目中经常会存在需要调用第三方库的时候&#xff0c;对于Qt如何来调用第三方库&#xff0c;为了方便自己特意记录下详细过程。 一、前提 1. window 10操作系统 2. 已安装了Qt6.7.…

[大模型]Phi-3-mini-4k-instruct langchain 接入

环境准备 在 autodl 平台中租赁一个 3090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 。 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行演示。 创建工作…

10大wordpress外贸主题

手动工具wordpress外贸模板 适合生产套筒扳、管钳、工具箱、斧子、锤子、防爆工具、螺丝刀、扳手等手动工具的厂家。 https://www.jianzhanpress.com/?p4806 Invisible Trade WP外贸网站模板 WordPress Invisible Trade外贸网站模板&#xff0c;做进出口贸易公司官网的word…

7-25 数字三角形问题

7-25 数字三角形问题 分数 10 全屏浏览 作者 夏仁强 单位 贵州工程应用技术学院 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法&#xff0c;计算出从三角形的顶至底的一条路径&#xff0c;使该路径经过的数字总和最大。 对于给定的由n行数字组成的数字三角…

【Spring】Spring事务相关源码分析

目录&#xff1a; 1.讲述事务的一些基础概念。 2.讲述事务的生命周期源码 3.配置事务&#xff0c;以及事务注解的源码 1.前言 具体事务中Spring是怎么管理事务&#xff0c;怎么去管理、创建、销毁等操作的呢&#xff1f;这一次来分解一下。 2.事务概述&#xff08;复习&a…

MySQL的增删查改(CRUD)

目录 一.CRUD 1.什么是CRUD 2.CRUD的特点 二.新增&#xff08;Create&#xff09; 单列插入全行数据 表的复制 额外小知识 三.阅读(Read) 1.全表查询指定列查询 2.查询字段为表达式 3.别名 ​编辑 4.去重 5.排序 1.根据列名进行排序 2.使用表达式及别名进行排序…

读AI未来进行式笔记12读后总结与感想兼导读

1. 基本信息 AI未来进行式 李开复 陈楸帆 著 浙江人民出版社,2022年5月出版 1.1. 读薄率 书籍总字数301千字&#xff0c;笔记总字数39650字。 读薄率39650301000≈13.2% 1.2. 读厚方向 千脑智能 脑机穿越 未来呼啸而来 虚拟人 AI3.0 新机器人 人工不智能&#xff…

搜索与图论:染色法判别二分图

搜索与图论&#xff1a;染色法判别二分图 题目描述参考代码 题目描述 输入样例 4 4 1 3 1 4 2 3 2 4输出样例 Yes参考代码 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 100010, M 200010;int n, m; i…

[C][数据结构][排序][下][快速排序][归并排序]详细讲解

文章目录 1.快速排序1.基本思想2.hoare版本3.挖坑法4.前后指针版本5.非递归版本改写 2.归并排序 1.快速排序 1.基本思想 任取待排序元素序列的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右…

自然语言处理领域的重大挑战:解码器 Transformer 的局限性

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Undertow学习

Undertow介绍 Undertow是一个用java编写的灵活、高性能的web服务器&#xff0c;提供基于NIO的阻塞和非阻塞API。 Undertow有一个基于组合的体系结构&#xff0c;允许您通过组合小型单用途处理程序来构建web服务器。为您提供了在完整的Java EE servlet 4.0容器或低级别非阻塞处…

【JavaEE精炼宝库】多线程(5)单例模式 | 指令重排序 | 阻塞队列

目录 一、单例模式&#xff1a; 1.1 饿汉模式&#xff1a; 1.2 懒汉模式&#xff1a; 1.2.1 线程安全的懒汉模式&#xff1a; 1.2.2 线程安全的懒汉模式的优化&#xff1a; 二、指令重排序 三、阻塞队列 3.1 阻塞队列的概念&#xff1a; 3.2 生产者消费者模型&#xf…

计算机网络之网络层知识总结

网络层功能概述 主要任务 主要任务是把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 分组和数据报的关系&#xff1a;把数据报进行切割之后&#xff0c;就是分组。 主要功能&#xff1a; 路由选择与分组转发 路由器…