leetcode1232一点小问题

news2024/9/23 15:31:55

解法

  1. a = x 2 − x 1 y 2 − y 1 , b = y 1 − a x 1 a=\frac{x_{2}-x_{1}}{y_{2}-y_{1}} ,b=y_{1}-ax_{1} a=y2y1x2x1b=y1ax1
  2. d = y n − y n − 1 x n − x n − 1 d=\frac{y_{n}-y_{n-1}}{x_{n}-x_{n-1}} d=xnxn1ynyn1
  3. ( y n − y n − 1 ) ∗ x n − x n − 1 = ( y n − 1 − y n − 2 ) ∗ x n − 1 − x n − 2 (y_{n}-y_{n-1})*x_{n}-x_{n-1}=(y_{n-1}-y_{n-2})*x_{n-1}-x_{n-2} (ynyn1)xnxn1=(yn1yn2)xn1xn2

问题

  1. python浮点数无法转换,斜率为0.5
    在这里插入图片描述

  2. return即结束

  3. 时间和空间复杂度太大

  4. 没有斜率(x=0)

解决办法

  1. python3可以使用强制转换达到结果相等,但python未找到合适的解决办法,只能使用解法三
  2. 设置条件只在结果为False时return
  3. 减少循环,尽量设置在同一个for中,如斜率为0的情况设置flag,根据条件进入不同的检验代码中或者选择解法三
        x1,y1=coordinates[0]
        x2,y2=coordinates[1]
        flag=False
        if x2-x1!=0:
            flag=True
            a=(y2-y1)/(x2-x1)
            b=y1-a*x1
        i=len(coordinates)-1
        while i>1:
            if flag and coordinates[i][1]!=a*coordinates[i][0]+b:return False
            elif (not flag) and coordinates[i][0]!=x1:return False
            i-=1
        return True
  1. 判断前两个x是否相等,如果相等,后续也要相等
  2. 注:y=0可以使用斜率式解决,不用单另判断。for取不到最后一个,但是while要注意

解法三

(此为搬运,仅为研究学习,因为从未想到过这个解法)

x1 = coordinates[1][0] - coordinates[0][0]
        y1 = coordinates[1][1] - coordinates[0][1]
        for i in range(len(coordinates)):
            x2 = coordinates[i][0] - coordinates[0][0]
            y2 = coordinates[i][1] - coordinates[0][1]
            if x1 * y2 != x2 * y1:
                return False
        return True

如有侵犯,私信必删

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

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

相关文章

【初阶数据结构】链表题的证明

环形链表题目方法的证明 证明1:为什么快指针每次⾛两步,慢指针⾛⼀步可以相遇,有没有可能遇不上,请推理证明! 证明二:为什么相遇点(meet)和头结点(head)到入环…

sql server导入mysql,使用工具SQLyog

概述 需要将sql server的数据导入到mysql中,由于2种数据库存在各种差异,比如表字段类型就有很多不同,因此需要工具来实现。 这里使用SQLyog来实现。 SQLyog安装 安装过程参考文档:https://blog.csdn.net/Sunshine_liang1/article/…

USART之串口发送+接收应用案例

文章目录 前言一、电路接线图二、应用案例代码三、应用案例分析3.1 USART模块初始化3.1.1 RCC开启时钟3.1.2 GPIO初始化3.1.3 配置USART3.1.4 开启中断、配置NVIC3.1.5 开启USART 3.2 USART串口收发模块3.2.1 Serial_SendByte(发送一个字节数据)3.2.2 US…

JVM对象创建和内存分配机制深度解析

一、对象创建方式 1、new关键字 这是最常见的创建对象的方式。通过调用类的构造方法(constructor)来创建对象。如:MyClass obj new MyClass()。这种方式会触发类的加载、链接、初始化过程(如果类还未被加载过的话)&…

递归搜索与回溯专题篇一

目录 组合 目标和 组合总和 字母大小全排列 组合 题目 思路 解决这道题利用DFS,决策树是怎样的?以n4,k3为例: 因为每个数只用到一次,因此需要剪枝,将出现重复数字的枝剪掉,因为组合中元素的…

Vue中的this.$emit()方法详解【父子组件传值常用】

​在Vue中,this.$emit()方法用于触发自定义事件。它是Vue实例的一个方法,可以在组件内部使用。 使用this.$emit()方法,你可以向父组件发送自定义事件,并传递数据给父组件。父组件可以通过监听这个自定义事件来执行相应的逻辑。 …

【PyQt6 应用程序】QTDesigner生成ui文件转成py源码并执行

要使用Qt Designer设计的UI界面生成Python代码并执行需要遵循几个步骤。确保已经安装了PyQt6和Qt Designer。Qt Designer是一个强大的工具,允许通过拖放组件来设计GUI界面,而不需要手写所有的代码。安装PyQt6时 Qt Designer通常会一起被安装。 文章目录 使用Qt Designer设计U…

米联客FDMA3.2源码分析以及控制BRAM、DDR3读写验证

文章目录 一、FDMA简介二、读写操作时序2.1 写时序2.2 读时序 三、FDMA源码分析四、源码仿真验证4.1 FDMA控制代码4.2 系统框图4.3 仿真结果4.3.1 写通道4.3.2 读通道 五、使用FDMA控制BRAM读写测试5.1 系统框图5.2 读写数据控制模块5.3 仿真结果5.4 下板验证 六、使用FDMA控制…

快讯 | 美军500天AI计划启动,“破解AI“与“反AI“策略亮相

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

VBA之正则表达式(46)-- 解析业务逻辑公式

实例需求:某业务系统的逻辑公式如下所示(单行文本),保存在活动工作表的A1单元格中。 "DSO_90Day"->"FA_NoFunc"->"FCCS_No Intercompany"->"FCCS_Data Input"->"FCCS_…

<数据集>非洲动物识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1504张 标注数量(xml文件个数):1504 标注数量(txt文件个数):1504 标注类别数:4 标注类别名称:[buffalo, elephant, rhino, zebra] 序号类别名称图片数框数1buffalo3…

Java生成一个5位的随机验证码(大小写字母和数字)

生成验证码 内容:可以是小写字母,也可以是大写字母,还可以是数字 规则:长度为5 内容中四位字母,一位数字 其中数字只有一位,但是可以出现在任意位置。 package test;impo…

arm-Pwn环境搭建+简单题目

前言 起因是看到一篇IOT CVE的分析文章。 正好也在学pwn,arm架构的也是IOT这些固件最常用的,所以先安一个arm-pwn的环境。 环境搭建/调试 1. 安装 gdb-multiarch sudo apt-get install gdb-multiarch2. 安装qemu ctf的arm_pwn只需要安装qemu-user就…

结构体内存的对齐

结构体的对齐规则 第一个成员在结构体变量偏移量为0的地址处。 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处 1) 对齐数 min( 编译器默认的一个对齐数, 该成员大小)。 2)默认的对齐数,可以通过宏…

kafka的12个重要概念

kafka的12个重要概念 1、服务器broker1.1、Broker 的主要功能1.2、Kafka Broker 的架构1.3、配置和管理1.4、高可用性和负载均衡1.5、总结 2、主题topic2.1、主要特点 3、事件Event4、生产者producer4.1、主要功能4.2、Producer 的配置选项4.3、Producer 的工作流程4.4、总结 5…

(javaweb)maven高级

目录 ​编辑 1.分模块设计与开发 2.继承与聚合--继承关系实现 3.继承与聚合--版本锁定 4.继承与聚合--聚合版本 5.私服 资源的上传与下载 1.分模块设计与开发 分模块:拆分成多个模块进行开发 不分模块:业务代码堆积成一个 不利于项目管理和维护并…

考研数学|零基础9月开始100天备考攻略

马上就要9月了,很多同学相比快要结束强化了,零基础的同学,进度可能会慢一些,但是别担心,考研数学的学习,进度不是最要紧的,学习效果才是!千万不要比进度,也不要赶进度&am…

Linux中的PCI配置空间

在计算机系统中,PCI(Peripheral Component Interconnect)总线是一种用于连接硬件设备的标准接口。PCI总线提供了一个通用的、高性能的数据传输通道,广泛应用于PC系统和服务器中。在Linux操作系统中,PCI设备的配置空间是…

Modern C++——不准确“类型声明”引发的非必要性能损耗

大纲 案例代码地址 C是一种强类型语言。我们在编码时就需要明确指出每个变量的类型,进而让编译器可以正确的编译。看似C编译器比其他弱类型语言的编译器要死板,实则它也做了很多“隐藏”的操作。它会在尝试针对一些非预期类型进行相应转换,以…

JS脚本实现RPA模拟人工操作网页获取数据

一、首先我们可以根据查询条件去预置一个Excel&#xff0c;比如我们以公司名称为例。 二、然后我们用JS读取Excel内容&#xff0c;进行页面打开与条件记录 <!DOCTYPE html> <html> <div style"text-align: center;margin-top: 300px;"><input …