不明白中间这段代码是什么意思 可以给解释一下么 代码复制在下面了

img

img

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] nums = null;
nums = sc.nextLine().split(" ");
int num[] = new int[nums.length];
int i;
for(i = 0;i < num.length; i++){
num[i]=Integer.valueOf(nums[i]);
System.out.println(num[i]);
}
int min = num[0], max = num[0], flagn = 0, flagx = 0;
for(i = 0; i < num.length; i++){
if(num[i] < min){
min = num[i];
flagn = i;//求出了最小数的坐标
}
if(num[i] > max){
max = num[i];
flagx = i;//求出了最大数的坐标
}
}

    if(num[0] == min)
        flagn = flagx;
    int a = num[0];
    num[0] = max;
    num[flagx] = a;
    
    if(num[num.length - 1] != min){
        int b = num[num.length - 1];
        num[num.length - 1] = min;
        num[flagn] = b;
    }
    
    for(i = 0;i < num.length; i++){
        System.out.println(num[i]);
    }

}

}

是为了满足题目要求吧,注意哈,题目要求是两点:
1.最大元素和第一个元素互换
2.最小元素和最后一个元素互换。

你上面贴的代码逻辑,圈起来的那部分是为了处理,最小元素是第一个元素时的情况。
整体逻辑:
1.最大和第一个互换。
2.(如果第一个元素是最小元素,则修改记录最小元素的下标为最大元素之前的位置。)
3.最小元素和最后一个元素互换。

你理下思路。

很简单的,你发的紫色块的第一段是第一个元素和最大值交换位置,第二段最小值和最后一个元素交换位置。这两段代码也是整个程序的核心