static int count = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
count = 0;
int n = sc.nextInt();
int arr[][] = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
arr[i][j] = sc.nextInt();
}
}
for (int i = 0; i < n ; i++) {
row(arr, n, i);
column(arr, n, i);
}
System.out.println(count);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(arr[i][j] + " ");
}
}
}
static void row(int arr[][], int n, int row) {
int x, y, min, yHold = 0;
for (x = 0; x < n; x++) {
boolean yes = false;
min = arr[row][x];
for (y = row; y < n; y++) {
if (arr[y][x] < min) {
min = arr[y][x];
yHold = y;
yes = true;
}
}
if (yes) {
int temp = arr[row][x];
arr[row][x] = min;
arr[yHold][x] = temp;
count++;
}
}
Если я заменю yes=true
на yes=!yes
, результат станет другим. Пожалуйста, помогите, кажется, не могу понять. Часть проблемы, которую принимает функциональная строка:
Если мы находимся в i-й строке, то мы должны работать с каждым столбцом за раз от 0 до n − 1 этой строки . Для любого j-го столбца замените A [i] [j] минимумом всех элементов, которые присутствуют в столбце с индексом j и строках от индексов i до n − 1.