看懂了
5,19,8,21 应该是9个长度吧
567
8910
19 20 21
public static void main(String[] args) { int zydw=3; //一次修所用的长度 int[] arr=new int[]{5,19,8,21};//故障点 int zxcd=0; //最小长度 //冒泡排序练习 for(int i=0;i<arr.length-1;i++){//外层循环控制排序趟数 for(int j=i;j<arr.length-1-i;j++){ //内层循环控制每一趟排序多少次 if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(int i=0;i<arr.length;i++){ for(int j=i;j<arr.length;j++){ if(arr[i]<=arr[j]&&arr[j]<=arr[i]+zydw-1){ continue; }else{ i=j; break; } } zxcd+=zydw; } System.out.println(zxcd); }
不是,求最短长度,5,6,7和6,7,8,所以修故障点5和8只用4个长度,加上19,21用的3个长度,一共要修7个长度