等差数列——网易

2017-08-31  本文已影响33人  远o_O

小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列

题目大意:

bug主要是,sum虽然可以和等差数列的和一样,但是不能证明该数列是等差数列。
虽然该解法可以通过OJ,显然是OJ测试用例不足。

Code

public class DisArr {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int a[] = new int[n];
        for (int i = 0; i < n; ++i)
        {
            a[i] = scanner.nextInt();
        }
        scanner.close();

        Arrays.sort(a);
        int dis = a[1] - a[0];
        for (int i = 1; i < a.length; ++i)
        {
            if (a[i] - a[i - 1] != dis)
            {
                System.out.println("Impossible");
                return;
            }
        }
        System.out.println("possible");
    }
}

上一篇 下一篇

猜你喜欢

热点阅读