我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟。

从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。(当最底层的玻璃杯满了,香槟会流到地板上)

例如,在倾倒一杯香槟后,最顶层的玻璃杯满了。倾倒了两杯香槟后,第二层的两个玻璃杯各自盛放一半的香槟。在倒三杯香槟后,第二层的香槟满了 - 此时总共有三个满的玻璃杯。在倒第四杯后,第三层中间的玻璃杯盛放了一半的香槟,他两边的玻璃杯各自盛放了四分之一的香槟,如下图所示。

现在当倾倒了非负整数杯香槟后,返回第 i 行 j 个玻璃杯所盛放的香槟占玻璃杯容积的比例(i 和 j都从0开始)。

示例 1:

输入: poured(倾倒香槟总杯数) = 1, query_glass(杯子的位置数) = 1, query_row(行数) = 1
输出: 0.0
解释: 我们在顶层(下标是(0,0))倒了一杯香槟后,没有溢出,因此所有在顶层以下的玻璃杯都是空的。

示例 2:

输入: poured(倾倒香槟总杯数) = 2, query_glass(杯子的位置数) = 1, query_row(行数) = 1
输出: 0.5
解释: 我们在顶层(下标是(0,0)倒了两杯香槟后,有一杯量的香槟将从顶层溢出,
位于(1,0)的玻璃杯和(1,1)的玻璃杯平分了这一杯香槟,所以每个玻璃杯有一半的香槟。

注意:

poured 的范围[0, 10 ^ 9]。
query_glass 和query_row 的范围 [0, 99]。

思路分析:\color{blue}思路分析:思路分析:这道题貌似没有什么技巧吧,直接将所有香槟倒到顶层的杯子了,然后逐渐往下溢出即可。

class Solution {public:double champagneTower(int poured, int query_row, int query_glass) {vector<vector<double>> glass(query_row + 1, vector<double>(query_row + 1, 0));glass[0][0] = poured;//初始化所有香槟都放到顶层的杯子中//从顶层逐渐往下溢出for (int row = 0; row < query_row; ++row){for (int col = 0; col <= row; ++col){if (glass[row][col] > 1){//只有这个杯子满了才有溢出的部分//注意下标对应关系glass[row + 1][col] += 0.5 * (glass[row][col] - 1);glass[row + 1][col + 1] += 0.5 * (glass[row][col] - 1);}}}return glass[query_row][query_glass] > 0.9999 ? 1 : glass[query_row][query_glass];}
};

LeetCode 香槟塔相关推荐

  1. Leetcode 799. 香槟塔

    我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟. 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都 ...

  2. Java实现 LeetCode 799 香槟塔 (暴力模拟)

    799. 香槟塔 我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟. 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了 ...

  3. LC-799.香槟塔

    8月22号腾讯笔试题 "水站的水流量" 799. 香槟塔 难度中等 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每 ...

  4. 799. 香槟塔 : 简单线性 DP 运用题

    题目描述 这是 LeetCode 上的 799. 香槟塔 ,难度为 中等. Tag : 「动态规划」.「线性 DP」 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个 ...

  5. leecode.799. 香槟塔

    题目 香槟塔 我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟. 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任 ...

  6. 二维香槟塔问题分析过程记录

    二维香槟塔物理模型分析 在取消酒杯数量和行数的限制下,还原倒酒全过程,深度分析第[i,j]个酒杯注满需要多少杯酒 这篇笔记先单纯分析问题 我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有 ...

  7. 【每日一题Day33】LC799香槟塔 | 动态规划

    香槟塔[LC799] 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香槟. 从顶层的第一个玻璃杯开始倾 ...

  8. LeetCode 799. 香槟塔(DP动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟. 从顶层的第一个玻璃杯开始倾 ...

  9. 力扣(LeetCode)799. 香槟塔(C++)

    动态规划 设 iii 是行 , jjj 是列 , f[i][j]f[i][j]f[i][j] 表示经过杯子的酒量 ,初始 f[0][0]=pouredf[0][0]=pouredf[0][0]=pou ...

  10. LeetCode日记(香槟塔)第三天

    题目如下: 我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香槟. 从顶层的第一个玻璃杯开始倾倒一些香槟 ...

最新文章

  1. C#用 SendKyes 结合 Process 或 API FindWindow、SendMessage(PostMessage) 等控制外部程序
  2. 快速学习正则表达式,不用死记硬背,这里有份中文资源和互动学习网站
  3. Django 基于角色的权限控制
  4. Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)
  5. 为何excel中数据无法计算机,excel表格内数据为何无法计算机-为什么EXCEL单元格内的数字不能运算...
  6. 设计模式之间的关联关系和对比
  7. CentOS多网卡重命名配置
  8. android l 效果,[原]Android L中水波纹点击效果的实现
  9. java paint的使用_java GUI编程之paint绘制操作示例
  10. 指南|七步搞定研控E总线驱动器与欧姆龙PLC主站连接
  11. Vue3-歌词根据时间自动滚动
  12. Mysql创建用户并赋予权限
  13. Python(八)阶段小结
  14. export PATHONPATH的用法
  15. 推特 我们目前不能注册此邮箱地址_英雄联盟手游来了!最简单的下载/安装/注册教程!...
  16. NEX让人们对vivo刮目相看,这个互联网巨头出了一份力
  17. hihocoder1258(水)(2015ACM/ICPC北京站)
  18. 九天揽月带你玩转Ardupilot 的EKF2纸老虎
  19. Adversarial Camouflage: Hiding Physical-World Attacks with Natural Styles笔记
  20. 高清不卡!MIT用机器学习让你更流畅的观看在线视频

热门文章

  1. windows文件服务器双机热备_几款Windows与Linux双机热备软件推荐
  2. python假设税前工资和税率如下_计算税后收入_税前税后工资计算公式,软件和手动计算哪个更有优势?...
  3. 如何在WordPress中的页面上添加博客文章
  4. 黑客如何用线程注射技术隐藏自己的病毒
  5. 测试基础(含答案2)
  6. 夜幕下的区块链:揭露区块链评级的猫腻
  7. macOS Big Sur 11.5 (20G71) 正式版 DMG、ISO、IPSW 百度网盘下载
  8. 流量卡之家:英国运营商推出5G无限流量套餐 每月约300元
  9. python sklearn PR曲线 AUPR值
  10. 百度BAE部署微信开发环境