201712-1最小差值(Java、C++、Python)
阿新 • • 發佈:2018-11-23
題目描述
給定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的正整數。
- Java
import java.util.Scanner; public class Main { static Scanner sc; static int n; static int min; static int temp; static int[] a; public static void main(String[] args) { sc= new Scanner(System.in); n=sc.nextInt(); a=new int[n]; for(int i=0;i<n;i++){ a[i]=sc.nextInt(); } min=Math.abs(a[0]-a[1]); for(int i=0;i<n;i++){ for(int j=n-1;j>i;j--){ temp=Math.abs(a[i]-a[j]); if(min>temp){ min=temp; } else{ min=min; } } } System.out.println(min); } }
- C++
#include <bits/stdc++.h> using namespace std; int main() { int a[1024],n; scanf("%d",&n); for(int i=0;i<n;++i) scanf("%d",&a[i]); sort(a,a+n); int i=1,minval=999999; while(i<n) { minval=min(minval,a[i]-a[i-1]); ++i; } printf("%d\n",minval); return 0; } --------------------- 轉自:https://blog.csdn.net/gl486546/article/details/79050636
- Python
# 最小差值 n = int(input()) s = input().split() a = [] for i in range(0,n): a.append(int(s[i])) min_value = 10000 for i in range(0,len(a)): for j in range(i+1,len(a)): temp = a[i] - a[j] if abs(min_value) > abs(temp): min_value = abs(temp) print(min_value) --------------------- 轉自:https://blog.csdn.net/qq_36851515/article/details/83035281