그래서 저는 2D 행렬을 가지고 있으며 가장 큰 값에서 가장 작은 값까지 출력하려고합니다. 기본적으로 항상 최대 값을 찾아이 값을 찾으면 1
에 해당하는 위치를 adjacencyMatrix
에 설정하여 다시 계산하지 않습니다. 문제는 내가 가장 큰 것을 인쇄하여 올바르게 시작한 코드를 테스트 한 후 두 번째로 큰 것을 건너 뛴 경우입니다. 그 다음 3 위와 4 위를 차지했습니다. 좀 더 건너 뛰고 마지막으로 0을 인쇄하기 시작했습니다. 나는 잠시 동안 그것을 쳐다보고되었고, 그래서 나는 그래도 눈을 또 한 쌍의 도움이 될 버그를 찾을 수 없습니다2D 배열의 값을 내림차순으로 인쇄하는 방법은 무엇입니까?
public static void findLongestPath(int rows, int columns, int[][] elevationMatrix, int[][] adjacencyMatrix)
{
int max = 0;
for (int x = 0; x < rows * columns; x++)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
if (elevationMatrix[i][j] > max && adjacencyMatrix[i][j] == 0)
{
max = elevationMatrix[i][j];
adjacencyMatrix[i][j] = 1;
}
}
}
System.out.println(max);
max = 0;
}
}
:
여기 내 코드입니다.
P. 제발, 제발 배열을 정렬하지 말아주세요. 그렇게 할 수 없기 때문에. 원본 배열의 순서를 유지해야합니다.
원본 배열의 크기가 '행 * 열'인 1 차원 크기를 만들고 정렬합니다. –
@LouisWasserman 나는 그 자리를 잃을 것이다. 이것은 큰 프로그램의 일부이며 각 값의 위치를 알아야합니다. –
그러면 위치와 값을 저장하는 'Comparable'을 구현하는 클래스를 작성한 다음 정렬 할 것입니다. –