See-Victory 2022-03-01 23:11 采纳率: 0%
浏览 45

能帮我看看我这代码有什么问题吗?QAQ

img

import java.util.*;

public class Main{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();
        
        long[] a = new long[n];
        
        for (int i = 0; i < a.length; i++) {
            a[i] = scanner.nextLong();
        }
        
        scanner.close();
        
        Arrays.sort(a);
        
        long d = a[1] - a[0];
        
        for (int i = 0; i < a.length - 2; i++) {
            d = Math.min(d, a[i + 2] - a[i + 1]);
            if (d == 0) {
                break;
            }
            if (a[i] / d == 0) {
                break;
            }
        }
        
        if (d == 0) {
            System.out.println(a.length);
        }else {
            System.out.println(a[a.length - 1] / d);
        }
        
    }

}

测试用例只对了几个,不知道还有哪里没考虑到QAQ。

img

  • 写回答

2条回答 默认 最新

  • 於黾 2022-03-02 07:58
    关注

    其中d是公差,设想是当知道公差和最大的一项,两者相除就可以得出最短序列了
    -=-=-=-=
    你弄错了2点
    1.先说简单的1点,只知道公差和最大一项,你不管最小的一项吗,数列有头有尾,你直接最大项除以公差,是默认最小项一定是0吗
    2.公差可不是a[1]-a[0]这样算的,也不是求数列里相减的最小值
    比如0,4,10这个数列,明显公差既不是4也不是6,而是2,你要求所有相邻项的最大公约数

    评论

报告相同问题?

问题事件

  • 创建了问题 3月1日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估