1659. Java의 Leetcode 솔루션
2506 단어 java
class Solution {
int m;
int n;
int maxState;
int mod;
int[][][][][] dp;
public int getMaxGridHappiness(int m, int n, int introvertsCount, int extrovertsCount) {
this.m = m;
this.n = n;
maxState = (int) Math.pow(3, n);
mod = maxState / 3;
dp = new int[m][n][introvertsCount + 1][extrovertsCount + 1][maxState];
return dp(0, 0, introvertsCount, extrovertsCount, 0);
}
public int dp(int row, int column, int introvertsCount, int extrovertsCount, int lastState) {
if (row == m)
return 0;
if (column == n)
return dp(row + 1, 0, introvertsCount, extrovertsCount, lastState);
if (dp[row][column][introvertsCount][extrovertsCount][lastState] == 0) {
int value = dp(row, column + 1, introvertsCount, extrovertsCount, lastState % mod * 3);
if (introvertsCount != 0) {
int value1 = 120, up = lastState / mod, left = lastState % 3;
if (row > 0 && up != 0) {
value1 -= 30;
value1 += up == 1 ? -30 : 20;
}
if (column > 0 && left != 0) {
value1 -= 30;
value1 += left == 1 ? -30 : 20;
}
value = Math.max(value, value1 + dp(row, column + 1, introvertsCount - 1, extrovertsCount, lastState % mod * 3 + 1));
}
if (extrovertsCount != 0) {
int value2 = 40, up = lastState / mod, left = lastState % 3;
if (row > 0 && up != 0) {
value2 += 20;
value2 += up == 1 ? -30 : 20;
}
if (column > 0 && left != 0) {
value2 += 20;
value2 += left == 1 ? -30 : 20;
}
value = Math.max(value, value2 + dp(row, column + 1, introvertsCount, extrovertsCount - 1, lastState % mod * 3 + 2));
}
dp[row][column][introvertsCount][extrovertsCount][lastState] = value;
}
return dp[row][column][introvertsCount][extrovertsCount][lastState];
}
}
리트코드
도전
문제에 대한 링크는 다음과 같습니다.
https://leetcode.com/problems/maximize-grid-happiness/
Reference
이 문제에 관하여(1659. Java의 Leetcode 솔루션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/chiki1601/1659-leetcode-solution-in-java-4p0c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
문제에 대한 링크는 다음과 같습니다.
https://leetcode.com/problems/maximize-grid-happiness/
Reference
이 문제에 관하여(1659. Java의 Leetcode 솔루션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chiki1601/1659-leetcode-solution-in-java-4p0c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)