当前位置: 首页 > news >正文

蓝桥与力扣刷题(蓝桥 等差数列)

题目:数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一 部分的数列,只记得其中 N个整数。

现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

输入描述

输入的第一行包含一个整数 N。

第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1~AN​ 并不一定是按等差数列中的顺序给出)

其中,2≤N≤105,0≤Ai≤109。

输出描述

输出一个整数表示答案。

输入输出样例

示例

输入

5
2 6 4 10 20

输出

10

样例说明: 包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、 18、20。

解题思路+代码:

代码:

import java.util.Scanner;
import java.util.Arrays;
//1:无需package
//2:类名必须Main,不可修改
public class Main{
    public static void main(String[]args){
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();//等差数列中有n个整数
        int[]arr=new int[n];//创建数组存放等差数列中的n个整数
        for(int i=0;i<arr.length;i++){
            arr[i]=scan.nextInt();//填充等差数列当中的n个整数
        }
        scan.close();
        Arrays.sort(arr);//对n项整数进行排序
        int d=Integer.MAX_VALUE;
        //防止数组下标越界
        for(int i=0;i<n-1;i++){
            if(arr[i+1]-arr[i]<d){
                d = arr[i+1]-arr[i]; //公差
            }
        }
        if(d==0){
            System.out.println(n);//常数列,直接返回n项
            return;
        }
        int res=(arr[n-1]-arr[0]) / d + 1;//(最大项 - 最小项)/ 公差 + 1
        System.out.println(res);
    }
}

总结:解答这道题有几个关键点,第一个关键点是首先在数组中填充完等差数列的n个整数要使用sort排序,使得数组中存放的n个数有序排列,第二个关键点是排序完之后使用for循环遍历数组计算出公差(这里需要注意防止数组下标越界),否则会报段错误,第三个关键点是公差为0时,整个数组为常数列(常数列是等差数列中较为特殊的一种,公差为0),第四个关键点就是找到最大项和最小项之间存在的规律(最大项 - 最小项)/ 公差 + 1。这里面任何一个关键点都很重要,缺其一则会出现报错。

相关文章:

  • Word中把参考文献引用改为上标
  • Linux上位机开发实战(按钮响应)
  • AI绘画软件Stable Diffusion详解教程(10):图生图进阶篇(局部手绘修正)
  • Python 正则表达式模块 re
  • 「基于大模型的智能客服系统」语义理解、上下文记忆与反馈机制设计
  • 实现悬浮按钮拖动,兼容h5和微信小程序
  • LinPEAS 使用最佳实践指南
  • Profinet转Profinet以创新网关模块为核心搭建西门子和欧姆龙PLC稳定通讯架构案例​
  • 中级软件设计师2004-2024软考真题合集下载
  • 【每日学点HarmonyOS Next知识】嵌套组件、装饰器报错、迭代列表刷新、单位换算、tabs组件生命周期
  • 使用GPTQ量化Llama-3-8B大模型
  • stm32F103RCT6+ModBus之RTU
  • SpringBoot学生宿舍管理系统的设计与开发
  • 谷粒商城:性能压测JVM堆区
  • 前端学习笔记(三)——ant-design vue表单传递数据到父页面
  • 【从零开始学习计算机科学】数据库系统(十)XML、XPATH、XQuery与XML数据库
  • 在 Ubuntu 上安装和配置 Docker 的完整指南
  • 计算机网络-网络存储技术
  • Java随机数生成终极指南:数组存储到Math.random()与Random类的深度对比
  • 【金字塔原理】如何有效提升思考和表达能力
  • 响应式网站是做列表/618网络营销策划方案
  • 做网站大公司有哪些/seo站长综合查询
  • 龙岗建设高端网站/安徽网站关键词优化
  • 店铺销售系统软件哪个好/网站标题优化排名
  • 数据库网站建设多少钱/网站关键词搜索排名优化
  • 网站上如何做相关推荐/网络推广需要什么