leetcode数论(2280. 表示一个折线图的最少线段数)-几何

news2024/12/24 0:34:24

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。

数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。

描述

给你一个二维整数数组 stockPrices ,其中 stockPrices[i] = [dayi, pricei] 表示股票在 dayi 的价格为 pricei 。折线图 是一个二维平面上的若干个点组成的图,横坐标表示日期,纵坐标表示价格,折线图由相邻的点连接而成。比方说下图是一个例子:

请你返回要表示一个折线图所需要的 最少线段数 。

示例 1:

        

输入:stockPrices = [[1,7],[2,6],[3,5],[4,4],[5,4],[6,3],[7,2],[8,1]]
输出:3
解释:
上图为输入对应的图,横坐标表示日期,纵坐标表示价格。
以下 3 个线段可以表示折线图:
- 线段 1 (红色)从 (1,7) 到 (4,4) ,经过 (1,7) ,(2,6) ,(3,5) 和 (4,4) 。
- 线段 2 (蓝色)从 (4,4) 到 (5,4) 。
- 线段 3 (绿色)从 (5,4) 到 (8,1) ,经过 (5,4) ,(6,3) ,(7,2) 和 (8,1) 。
可以证明,无法用少于 3 条线段表示这个折线图。

示例 2:

        

输入:stockPrices = [[3,4],[1,2],[7,8],[2,3]]
输出:1
解释:
如上图所示,折线图可以用一条线段表示。

提示:

  • 1 <= stockPrices.length <= 105
  • stockPrices[i].length == 2
  • 1 <= dayi, pricei <= 109
  • 所有 dayi 互不相同 。

实现原理与步骤

1.排序后迭代比较斜率

2.斜率比较使用x1*y2!=x2*y1,避免除法的特制处理。

 实现代码(按模分组)

class Solution {
    public int minimumLines(int[][] stockPrices) {
        int res=1;
        int len=stockPrices.length;
        if(len==1){
            return 0;
        }
        Arrays.sort(stockPrices, (a, b) -> Integer.compare(a[0], b[0]));
        int[] pre=stockPrices[0];
        for(int i=1;i<len-1;i++){
            int[] cur=stockPrices[i];
            int[] next=stockPrices[i+1];
            int x1=cur[0]-pre[0];
            int y1=cur[1]-pre[1];
            int x2=next[0]-cur[0];
            int y2=next[1]-cur[1];
            if(x1*y2!=x2*y1){
                res++;
            }
            pre=cur;
        }
        return res;
    }
}

1.QA:

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

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

相关文章

SwiftUI 如何定制 Picker 视图当前选中行的背景颜色?

功能需求 有时我们希望可以定制 SwiftUI 中 Picker 视图当前选中行的背景色,这可以做到吗? 在上面的演示图中,我们随心所欲地变换着 SwiftUI 中 Picker 视图当前选中行的背景色。这是怎么做到的呢? 在本篇博文中,您将学到以下内容 功能需求1. 钩深极奥:修改 SwiftUI 原…

为什么总是很难很好的理解电工电子知识?终于有了解决的办法!

理解电工电子知识可能具有挑战性&#xff0c;这可以由多种因素造成。以下是一些可能的原因&#xff1a; 抽象性高&#xff1a;电工电子学涉及到电流、电压、电阻、电容、电感等抽象概念&#xff0c;这些概念在日常生活中不易直接观察和体验&#xff0c;因此需要较高的抽象思维…

【nginx】centos7安装并配置开机自启

【nginx】配置开机自启 1.nginx配置开机自启 安装完成nginx之后 vim /lib/systemd/system/nginx.service[Unit] Descriptionnginx Afternetwork.target[Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload/usr/loc…

使用开源 LLM 充当 LangChain 智能体

太长不看版 开源 LLM 现已达到一定的性能水平&#xff0c;可堪作为智能体工作流的推理引擎。在我们的测试基准上&#xff0c;Mixtral 甚至已超越 GPT-3.5&#xff0c;而且我们还可以通过微调轻松地进一步提高其性能。 引言 经由因果语言建模任务训练出的大语言模型&#xff…

鸿蒙应用服务开发【华为支付服务】客户端

华为支付服务 介绍 本示例展示了使用华为支付服务提供的单次支付&#xff0c;签约代扣。 需要使用华为支付服务接口 kit.PaymentKit。 效果预览 Sample工程的配置与使用 在DevEco中配置Sample工程的步骤如下 [创建项目]及[应用]。打开Sample应用&#xff0c;使用[AppGall…

【JavaEE精炼宝库】网络原理基础——UDP详解

文章目录 一、应用层二、传输层2.1 端口号&#xff1a;2.2 UDP 协议&#xff1a;2.2.1 UDP 协议端格式&#xff1a;2.2.2 UDP 存在的问题&#xff1a; 2.3 UDP 特点&#xff1a;2.4 基于 UDP 的应用层协议&#xff1a; 一、应用层 我们 Java 程序员在日常开发中&#xff0c;最…

2024年大模型LLM还有哪些可研究细分领域?

Pretraining部分 Data Collection 整个pretrain阶段最重要的部分就是数据收集&#xff0c;尽管OpenAI已经给我们了一套标准化的数据收集流程并也有很多开源机构给予了预训练数据&#xff08;例如common crawl [1]&#xff0c;starcoder等网络数据 [2]&#xff09;&#xff0c…

清华大学终于把Python整理成了《漫画书》

前言 随着人工智能的发展&#xff0c;Python近两年也是大火&#xff0c;越来越多的人加入到Python学习大军&#xff0c;对于毫无基础的人该如何入门Python呢&#xff1f;小编这里整理了一套python编程零基础自学教程&#xff0c;清华大佬196小时讲完的&#xff0c;全程干货无废…

如何将avi格式转换为flv格式呢?

FLV是随着FLASH MX的推出发展而来的一种视频格式&#xff0c;目前被众多新一代视频分享网站所采用&#xff0c;是目前增长较快&#xff0c;也较为广泛的视频传播格式。 FLV格式可以轻松导入FLASH播放器中&#xff0c;另外它还能起到保护版权的作用&#xff0c;非常受欢迎。那么…

uniapp实现可视化图表(轻量、内存小)

图表官网&#xff1a;uCharts官网 - 秋云uCharts跨平台图表库 用原生组件&#xff1a; 选择自己需要的模块&#xff0c;以小程序为例&#xff1a; 把min.js下载下来 把min.js放到小程序代码中&#xff0c;引用即可&#xff0c;使用案例看官网&#xff0c; 在官网中选择想要的…

Embedding技术之Graph Embedding

Graph Embedding用于处理互联网中的图数据——社交网络、知识图谱、行为关系类型图数据。 1、DeepWalk——基于随机游走的Graph Embedding DeepWalk 是一种用于学习图&#xff08;网络&#xff09;中节点的低维向量表示&#xff08;即节点嵌入&#xff09;的算法。 DeepWalk …

51单片机-第八节-蜂鸣器

一、什么是蜂鸣器&#xff1f; 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常用来产生设备的按键音、报警音等提示信号。 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器&#xff1a; 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可…

供应商较多的汽车制造业如何选择供应商协同平台?

汽车制造业的供应商种类繁多&#xff0c;根据供应链的不同环节和产品特性&#xff0c;可以大致分为以下几类。 按供应链等级分包括&#xff1a; 一级供应商通常具有较高的技术水平和生产能力&#xff0c;能够满足汽车厂商对零部件的高品质、高性能和高可靠性的要求。 二级供应…

正点原子imx6ull-mini-Linux驱动之Linux CAN 驱动实验

CAN 是目前应用非常广泛的现场总线之一&#xff0c;主要应用于汽车电子和工业领域&#xff0c;尤其是汽车 领域&#xff0c;汽车上大量的传感器与模块都是通过 CAN 总线连接起来的。CAN 总线目前是自动化领 域发展的热点技术之一&#xff0c;由于其高可靠性&#xff0c;CAN 总线…

SpringBoot整合MyBatis-Plus实现多数据源数据迁移

SpringBoot整合MyBatis-Plus实现多数据源数据迁移(达梦数据库、mysql) 1. 相关pom <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.6</version> </dependency&g…

【python安装离线包】

python安装离线包 一、离线包下载1.1 离线包单个下载1.2 离线包批量下载 二、离线包安装2.1 离线包单个安装2.2 离线包批量安装 一、离线包下载 目的&#xff1a;我们在工作中可能会遇到内网环境、离线环境、或者python的源无法下载三方库的情况&#xff0c;此时就得需要我们自…

Can GPT-3 Perform Statutory Reasoning?

文章目录 题目摘要相关工作SARAGPT-3 对美国法典的了解GPT-3 在对合成法规进行简单推理时遇到困难结论 题目 GPT-3 可以进行法定推理吗&#xff1f; 论文地址&#xff1a;https://arxiv.org/abs/2302.06100 摘要 法定推理是用事实和法规进行推理的任务&#xff0c;法规是立法机…

音频应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

音频应用编程 Linux 下 ALSA 框架概述 ALSA 简介&#xff1a;ALSA 是 Advanced Linux Sound Architecture&#xff08;高级的 Linux 声音体系&#xff09;的缩写 地位与功能&#xff1a;现已成为 Linux 下的主流音频体系架构&#xff0c;提供音频和 MIDI 支持&#xff0c;替代…

无线网络工具Aircrack-ng使用大全(非常详细)零基础入门到精通,收藏这一篇就够了

Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件&#xff0c;主要功能有 网络侦测 。可以捕获无线网络数据包&#xff0c;并对其进行分析和处理&#xff0c;以便获取无线网络的关键信息和加密密钥。 数据包嗅探 。可以嗅探802.11a、802.11b、802.11g的数据。 WEP和…

腾讯云AI代码助手:智能编程的未来之窗

腾讯云AI代码助手&#xff1a;智能编程的未来之窗 智能编程的未来之窗 引言配置环境介绍腾讯云 AI 代码助手使用实例生成文档功能解释代码功能生成测试功能精准修复错误功能技术对话功能 智能编程获得的帮助与提升对腾讯云AI代码助手的建议结语 引言 今天七七给大家带来一款非常…