LeetCode 799 香槟塔[模拟+动态规划] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 799 香槟塔[模拟+动态规划] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
很好理解的模拟动态规划题,对于每个i层j位置的玻璃杯,如果超出了1,它会平均流给i+1层j位置和j+1位置的玻璃杯,这样自上而下把香槟流下去即可,代码如下:
class Solution
public:
double champagneTower(int poured, int query_row, int query_glass)
vector<vector<double>> dp(101, vector<double>(101, 0.0));
dp[0][0] = poured;
for(int i = 0; i <= query_row; i ++)
for(int j = 0; j <= i; j ++)
if(dp[i][j] >= 1)
double rest = dp[i][j] - 1;
dp[i][j] = 1;
dp[i + 1][j] += rest / 2;
dp[i + 1][j + 1] += rest / 2;
return dp[query_row][query_glass];
;
以上是关于LeetCode 799 香槟塔[模拟+动态规划] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章