CCF-Java - 最小差值 - 100分

往前走,往前看,哪怕前途一片迷惘,哪怕只是憑着慣性往前走——總有一天,會在自己漫長的腳印中找到方向。
只是大概需要一些耐心
——priest

命令行輸入數組與輸出

代碼實現

package ccf_1;
import java.util.Arrays;
import java.util.Scanner; //導入Scanner類
public class ccf_test2{
    public static void main (String args[]){
        Scanner sc = new Scanner(System.in); //使用scanner類創建sc對象
        while(sc.hasNext()){
        //while循環是隻要while後面表達式的值爲true就會一直循環,直到表達式的值變爲false,結束循環
            int n = sc.nextInt(); //數組個數
            int[] a = new int[n]; //數組
            for (int i=0; i<n; i++){
                a[i] = sc.nextInt();  //依次輸入數組元素
            }
            Arrays.sort(a); //Array調用排序方法,數組a按照升序排序
            System.out.println(Arrays.toString(a)); //輸出數組元素
        }
    }
}
5
55555 5 55 5555 555
[5, 55, 555, 5555, 55555]

最小差值

問題描述

問題描述
  給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。
輸入格式
  輸入第一行包含一個整數n。
  第二行包含n個正整數,相鄰整數之間使用一個空格分隔。
輸出格式
  輸出一個整數,表示答案。
樣例輸入
5
1 5 4 8 20
樣例輸出
1
樣例說明
  相差最小的兩個數是5和4,它們之間的差值是1。
樣例輸入
5
9 3 6 1 3
樣例輸出
0
樣例說明
  有兩個相同的數3,它們之間的差值是0.
數據規模和約定
  對於所有評測用例,2 ≤ n ≤ 1000,每個給定的整數都是不超過10000的正整數

代碼實現

//2017-12-1
package ccf_1;
import java.util.Arrays;
import java.util.Scanner; //導入Scanner類
public class ccf_test2{
    public static void main (String args[]){
        Scanner sc = new Scanner(System.in); //使用scanner類創建sc對象
        while(sc.hasNext()){
            int n = sc.nextInt(); //數組個數
            int[] a = new int[n]; //數組
            int min_dif = 10000; //最小差值
            for (int i=0; i<n; i++){
                a[i] = sc.nextInt();  //依次輸入數組元素
            }
            for (int i=0;i<n;i++){
                for (int j=i+1;j<n;j++){
                    int dif = Math.abs(a[i]-a[j]);
                    if (min_dif>dif){
                        min_dif = dif;
                    }
                }
            }
            System.out.println(min_dif);
        }
    }
}
5
1 5 4 8 20
1

評測結果

根據提交要求更改提交程序後得到如下評測結果:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章