题目链接:1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn)
可分析,把一个数组分成两组,求一组的最大值与另一组的最小值的差值的绝对值最小,可以转换为求任意两个相邻数字之间的最小插值的绝对值。
可看图示:
package lanqiao;
import java.util.Arrays;
import java.util.Scanner;
/**
* 2023/11/29
*/
public class lanqiao3412_最小化战斗力差距 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int[] a=new int[n];
for (int i=0;i<n;i++)
a[i]=scan.nextInt();
Arrays.sort(a);
int min=Integer.MAX_VALUE;
for (int i=0;i<n-1;i++){
min=Math.min(min,a[i+1]-a[i]);
}
System.out.println("最小战斗力差距为:"+min);
}
}
3
1 2 3
最小战斗力差距为:1
进程已结束,退出代码为 0