Letcode 동적 기획 테마

1250 단어 연습 문제 기록

기본 사고방식:

  • 정의 수조의 의미
  • 관계수 그룹 간의 관계 찾기
  • 초기화 값 찾기
  •  

    174. 지하성 게임


    문제 해결 방법:

  • 정의 수조의 의미: dp[i][j], i: 출발점에서 현재점까지의 경로와 j: 출발점에서 현재점까지의 최소 초기값
  • 관계수 그룹 간의 관계를 찾습니다. dp[i][j]=max(min(dp[i+1][j], dp[i][j+1])--dungeon(i, j),1), dp[i][j]에 대해 우리는 dp[i][j+1]와 dp[i+1][j]의 최소값을minn으로 기록하면 좌표(i, j)의 초기값이minn-3dungeon(i, j)에 도달하기만 하면 됩니다.또한 초기 값은 1보다 커야 합니다
  • .
  • 초기화 값: i=n-1i=n-3 또는 j=m-1j=m-3일 때 dp[i][j]이동에 필요한 dp[i][j+1]와 dp[i+1][j]에 무효가 있으면 무효값을 1로 설정하면 된다
  • 코드:

    class Solution {
    public:
        int calculateMinimumHP(vector>& dungeon) {
            int n = dungeon.size() , m = dungeon[0].size();
            vector> dp(n + 1 , vector(m + 1 , INT_MAX));
            dp[n][m - 1] = dp[n - 1][m] = 1;
            for(int i = n - 1; i >= 0; i--) {
                for(int j = m - 1; j >= 0; j--) {
                    int minn = min(dp[i + 1][j] , dp[i][j + 1]);
                    dp[i][j] = max(minn - dungeon[i][j] , 1);
                }
            }
            return dp[0][0];
        }
    };

    요약:

  • 무효치는 설정 초기치와 같고 초기치는 캐릭터의 최소 혈액치 1
  • 수조 관계를 찾을 때 우리는 본질적으로 가장 작은 경로를 찾아야 하지만 이 과정에서 혈액량이 0
  • 보다 적으면 안 된다.

    좋은 웹페이지 즐겨찾기