You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeforces 1772C问题Java代码输出异常,请求错误排查

问题背景

给定以下Java代码,输入5和数组[0,2,8,10,16]时,代码输出0,但预期结果大于0,需排查代码错误:

import java.util.Arrays;
import java.util.Scanner;

class Codechef { 
    static boolean test(int[]a,int n){
        for(int i=0;i<n;i++){
            if(a[i]-a[i+1]>0)
                System.out.println("not si");
            return false;
        }
        return true;
    }
    static int[] array(int[]a,int n){
        int[] a1=new int[n-1];
        if(test(a,n )){
            for(int i=0;i<n-1;i++){
                a1[i]=a[i+1]=a[i];
            }
        }
        return a1;
    }
    static int type(int[]a,int n){
        int c=0;
        int []k=array(a, n);
        Arrays.sort(k);
        for(int i=0;i<n-2;i++){
            if(k[i]!=k[i+1])c++;
        }
        return c;
    }
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("Array & no of elements");
        int n=in.nextInt();
        int []a=new int[n];
        for(int i=0;i<n;i++)
            a[i]=in.nextInt();
        int c=type(a, n);
        System.out.println(c);
    }
}

输入内容:

5
0
2
8
10
16

代码输出0,预期结果大于0,以下是代码中的关键错误:


1. test方法的致命逻辑错误

  • 数组越界风险:循环条件i < n会导致当i = n-1时,访问a[i+1]超出数组的合法下标范围(数组长度为n,最大下标为n-1)。
  • 代码块无大括号导致逻辑失效:if语句后未用大括号包裹执行代码,且return false直接写在循环体内——无论if条件是否成立,第一次循环都会执行return false,导致方法永远返回false,完全没有遍历数组判断是否非递增。比如输入的数组是严格递增的,本应返回true,但实际直接返回false。

2. array方法的赋值与逻辑错误

  • test返回false时数组未正确初始化:当test错误返回false时,a1数组仅完成默认初始化(所有元素为0),没有任何业务逻辑赋值,最终返回全0数组。
  • 错误的赋值语句:即使test返回true,a1[i]=a[i+1]=a[i]的逻辑完全偏离需求——这会修改原数组的a[i+1]为a[i],同时把该值赋给a1[i],完全没有实现题目需要的相邻元素差计算(或其他核心逻辑)。

3. type方法的统计逻辑偏差

  • 循环边界错误:循环条件i < n-2对应k数组(长度为n-1)的遍历范围不足,会遗漏最后一对相邻元素的比较。
  • 统计逻辑不符合需求:代码统计的是相邻不同元素的出现次数,而根据输入的预期(相邻差为[2,6,2,6],不同的差有2种),应该统计的是不同元素的种类数,而非相邻不同的次数。

错误验证

输入的数组是严格递增的,但test方法第一次循环就返回false,导致array返回全0数组[0,0,0,0],排序后仍为全0,type方法遍历后统计到0次相邻不同,最终输出0,与预期结果不符。

内容的提问来源于stack exchange,提问作者StackpackedKar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:25:14