| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> [Leetcode] 每日两题 458 590 -day21 -> 正文阅读 |
|
[数据结构与算法][Leetcode] 每日两题 458 590 -day21 |
458. 可怜的小猪可怜的小猪,这题一拿到就想到用动态规划做, 那要怎么用动态规划呢 。 从最简单的case开始: 先假设只有 一次机会,一只小猪 显然就是最多两瓶 那两只小猪呢 两只小猪喝完一次药的结果可以分 四种 都死 、A死 B不死、B死A不死,都不死 那么就可以对应4瓶药中找出一瓶,如果要给出具体的分配情况 : 都死 要对应一种信息 那 1 给 A B 都吃 ; 分别死 得对应一种信息 可以 2 3 分别给A,B吃; 都不死得对应一种信息 那4 就不给他们吃。 这样两种猪一次就可以对应4瓶。 问题到三只小猪 同样可以给出分配 A :1256 B:1357 C:1467 | 8 这样就可以发现 x 只小猪 一次喝药之后 可能出现 2 X 2^X 2X 种可能表现,就对应着 2 X 2^X 2X瓶药 这样dp(x,1) 就求出来了 x 表示小猪数目, 1 表示一次机会 那么到两次呢 :对于两次 机会 x只小猪 就等于 第一次喝药之后 加入还活着y 只小猪 ,接着y只小猪又回到第一次的情况 dp(x,2) = ∑ \sum ∑dp(y,1)* C x y C_x^y Cxy? 对于n次机会也同样如此 dp(x,n) = ∑ \sum ∑dp(y,n-1)* C x y C_x^y Cxy?
然后通过上面的答案发现dp如下所示
x 小猪 n次 的话就是 ( n + 1 ) x (n+1)^x (n+1)x 这样一想就发现 原来 n次机会的话 每只小猪可能的表现就是 在第x 次死亡或者没死 这 n+1 种表现, 那么x只小猪就一共是 ( n + 1 ) x (n+1)^x (n+1)x 种表现 所以就对应 着这么多瓶药。 妈的 小猪真可怜
590. N 叉树的后序遍历用一个list 用于储存节点 一个list用于储存访问值,后序遍历就相当于先右后左反过来, 对于节点列表中每个节点 释放之前,将其孩子节点都加入,同时将其值放入另一个list 然后重复以上过程
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 15:24:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |