【算法 | 数论 No.1】AcWing1246. 等差数列

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。

原题链接:点击直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣算法分析
  • 3️⃣代码编写

1️⃣题目描述

在这里插入图片描述
在这里插入图片描述

2️⃣算法分析

整个题目的思路是先求出数组元素之间的最大公约数然后计算最大等差子序列的长度

那什么时候这个最大等差子序列的长度是最大的呢?我们根据等差数列公式来看:an = a1 + (n - 1)d,即n = (an - a1) / d + 1an最小(但是取的是数组中的最大值)、a1最大(但是取的是数组中的最小值),同时d最大(即每个元素与第一个元素之间的差值的最大公约数)。

3️⃣代码编写

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;
const int N = 1e5 + 10;
int arr[N];

int gcd(int a,int b)
{
    return b ? gcd(b,a % b) : a;
}

int main()
{
    int n;
    cin >> n;
    for(int i = 0;i < n;i++) scanf("%d",&arr[i]);
    sort(arr,arr + n);
    
    int d = 0;
    for(int i = 1;i < n;i++) d = gcd(d,arr[i] - arr[0]);
    if(!d) printf("%d\n",n);
    else printf("%d\n",(arr[n - 1] - arr[0]) / d + 1);
    return 0;
}

最后就顺利通过啦!!!及时复习其中包含的一些小的算法哈,比如欧几里得算法~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【异常----finally和自定义异常】

文章目录 finally练习问题 异常的处理流程【异常处理流程总结】自定义异常类 finally 有些特定的代码&#xff0c;不论程序是否发生异常&#xff0c;都需要执行&#xff0c;比如程序中打开的资源&#xff1a;在程序正常或者异常退出时&#xff0c;必须要对资源进进行回收。另外…

2023.11.10联测总结

T 1 T1 T1求的是有多少个区间的异或和是 k k k的因子&#xff0c; n , k ≤ 1 0 5 n,k \leq 10^5 n,k≤105。 这道题用前缀和维护一下&#xff0c;暴力枚举所有区间就有 80 80 80分。 有一瞬间想过枚举因数&#xff0c;但是脑抽以为要 O ( n ) \mathcal O(n) O(n)枚举&#x…

计算机技术专业CSIT883系统分析与项目管理介绍

文章目录 前言一、学科学习成果二、使用步骤最低出勤要求 前言 本课程介绍了信息系统开发中的技术和技术&#xff0c;以及与管理信息技术项目的任务相关的方法和过程。 它研究了系统分析师、客户和用户在系统开发生命周期中的互补角色。 它涵盖了引出系统需求的不同事实调查技…

Java进阶API第二章

Java进阶API第二章 一. 抛出企业问题&#xff0c;脱离main测试&#xff0c;模块化编程 1.学校里如何测试的 //学校教的测试方法 public static void main(String[] args) {//2.本地测试//3.调用函数//4.看输出&#xff0c;查看结果是否符合预期//5.预期结果和测试结果是通过人工…

CSS 文字溢出省略号显示

1. 单行文本溢出显示省略号 需要满足三个条件&#xff0c;添加对应的代码&#xff1a; &#xff08;1&#xff09;先强制一行内显示文本&#xff1b; &#xff08;2&#xff09;超出的部分隐藏&#xff1b; &#xff08;3&#xff09;文字用省略号来替代省略的部分&#xf…

创建两个简单表A,B 。AB表有相关联的列。并在关联列上创建索引

目录 一、创建两个简单表&#xff0c;并进行外键关联 1、创建表A 2、创建表B&#xff0c;并且关联表A 二、在关联列上创建索引 三、检查是否成功 一、创建两个简单表&#xff0c;并进行外键关联 1、创建表A CREATE TABLE A (id NUMBER PRIMARY KEY,name VARCHAR2(50),d…

3.5、Linux:命令行git的使用

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 在Linux Centos7.6下安装git yum -y install git 注册一个gitee账号 进去注册就好&#xff0c;记住自己的用户名和密码。 创建一个仓库 点击复制&#xff0c;接着就可以在Linux上使用了 git clone git clone 刚才复制的地…

物联网AI MicroPython学习之语法 ustruct 打包和解压原始数据类型

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; ustruct 介绍 ustruct提供打包和解压原始数据类型的功能。 默认情况下&#xff0c;C类型以机器的本机格式和字节顺序表示&#xff0c;并在必要时通过跳过填充字节来正确对齐&#xff08;根据C编译器使用的规…

generic webhook trigger 插件

generic webhook trigger 插件 通用 webhook 通过curl 请求触发流水线 rootubuntu20:~/luohuiwen/spring-boot-helloWorld# openssl rand -base64 32 QNJvWjUiNvNhQ4bKleI/5h2iZTKjSMREAvSJRvcM0 curl -X POST -H "Content-Type: application/json" -d { "ref…

C++:关联式容器map的使用

1、map的简介 map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#xff0c;而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&#xff0c;并…

操作系统·处理机调度死锁

3.1 处理机调度概述 3.1.1 处理机调度概述 高级调度 (High level Scheduling)决定把外存上哪些作业调入内存、创建进程、分配资源。高级调度又称作业调度、长程调度或宏观调度。只在批处理系统中有高级调度。 中级调度 (Middle level Scheduling)完成进程的部分或全部在内、…

K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)

问题 K8S上出现大量持续terminating的Pod&#xff0c;无法通过常规命令删除。需要编写脚本批量强制删除持续temminating的Pod&#xff1a;contribution-xxxxxxx。 解决 获取terminating状态的pod名称的命令&#xff1a; # 获取media命名空间下&#xff0c;名称带contributi…

短信登录实现(黑马点评为例)

文章目录 前言一、隐藏用户敏感信息二、短信验证登录、注册1.流程2.代码3.使用redis优化解决代码 二、登录拦截&#xff08;校验&#xff09;1.流程2.代码 总结 前言 短信登录核心知识 首先黑马点评这个短信登录是一伪验证&#xff0c;即后台调用工具类随机生成六位数字。 1.R…

网络虚拟化介绍(OVS、DVS)

目录 虚拟化中网络架构 虚拟交换机类型 虚拟交换机OVS&#xff08;Open Vswitch&#xff09; 分布式虚拟交换机DVS 虚拟机和物理网卡的通信模式 虚拟交换机中其它功能特性 网络虚拟化概念 网络虚拟化就是把网络层的一些功能从硬件中剥离出来&#xff0c;建立新的网络虚拟…

xlua游戏热更新(C#访问lua)

xlua作为Unity资源热更新的重要解决方案api&#xff0c;在Tecent重多游戏中被采用&#xff0c;本文通过案例去讲解xlua代码结构层次。 /** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tence…

android自定义switch颜色

效果图&#xff1a; 原生样式和自己app的主题颜色不搭配&#xff0c;就可以这样自定义颜色样式。以下代码均可直接复制粘贴使用&#xff0c;且均有注释。 实现&#xff1a; 1、 新建drawable/switch_custom_thumb_on.xml&#xff08;滑块开启状态 &#xff09; <?xml ve…

WGCLOUD实践 - wgToken怎么使用

wgcloud中的wgToken&#xff0c;是server和agent通信的密钥&#xff0c;相当于密码 server配置文件中的wgToken值和agent配置文件中的wgToken值&#xff0c;需要相同&#xff0c;否则agent将无法给server上报数据 server配置文件如下&#xff1a; #server和agent的通信密钥&a…

Android修行手册-POI操作Excel实现超链接并且变为蓝色

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

阿里云双11优惠云服务器99元一年,4年396元

阿里云99元服务器新老用户均可以买&#xff0c;你没看错&#xff0c;老用户可以买&#xff0c;活动页面 aliyunfuwuqi.com/go/aliyun 配置为云服务器ECS经济型e实例、2核2G、3M固定带宽、40G ESSD Entry云盘&#xff0c;并且续费不涨价&#xff0c;原价99元即可续费&#xff0c…

论文阅读[121]使用CAE+XGBoost从荧光光谱中检测和识别饮用水中的有机污染物

【论文基本信息】 标题&#xff1a;Detection and Identification of Organic Pollutants in Drinking Water from Fluorescence Spectra Based on Deep Learning Using Convolutional Autoencoder 标题译名&#xff1a;基于使用卷积自动编码器的深度学习&#xff0c;从荧光光谱…