행렬을 나타내는 2D 배열이 있습니다. 가장 큰 합을 가진 사각형 부분 행렬을 찾아야합니다. I가이 있기 때문에이최대 합계 부분 행렬 찾기
9 3 5 9
2 5 9 8
8 4 9 7
9 5 3 9
큰 서브 행렬
9 8
9 7
될 예정이있는 경우 부분 행렬의 크기는, 예를 들어 (2)에 의해 분할 된 열 또는 행의 개수 가장 큰 합계.
2 둘째, 나는 순열의 가장 큰 부분 행렬을 찾아야합니다. 그 말은 하위 행렬의 모양이 가장 큰 숫자를 선택해야한다는 것입니다 (동일한 열 또는 동일한 행에서 적어도 두 개의 숫자). 예를 들어 네 개의 대각 모서리
9 9
9 9
의 화려하지만 첫번째 행을하고 매트릭스의 형상을 가지고 있기 때문에, 매트릭스를 만들 수 없다.
나는 여전히 고민 중입니다. 제발 도와주세요.
여기 내 코드와 subm는 행렬
for (i=0;i<rows-subm;i++){
for(j=0;j<colums-subm;j++)
{
temp=pic[i][j]+pic[i][j+1]+pic[i+1][j]+pic[i+1][j+1];
if(temp > summax)
summax=temp;
}
}
[무엇을 시도 했습니까?] (http://whathaveyoutried.com) – Keppil
박제 동물과 조금 이야기하십시오. 당신은 무엇을 알 수 있습니까? 문제를 해결하려면 무엇이 필요합니까? 무엇보다, 하위 코드에 대해 가장 큰 값을 찾도록 보장하는 코드는 무엇입니까? 나는 9 8 9 7이 가장 큰 부분 행렬 일 것이라고 생각한다. – Makoto
파트 1의 경우 가능한 모든 부분 행렬을 찾아야합니다. 재귀를 선택하거나 동적 프로그래밍을 찾을 수 있습니다. 이것은 표준적인 문제입니다. – Nishant