Sicily 算法模拟题 1001
来源:互联网 发布:淘宝怎么输入口令 编辑:程序博客网 时间:2024/06/05 12:06
1001 函数求值
定义超级和函数F如下:
F(0, n) = n,对于所有的正整数n..
F(k, n) = F(k – 1, 1) + F(k – 1, 2) + … + F(k – 1, n),对于所有的正整数k和n.
请实现下面Solution类中计算F(k, n)的函数(1 <= k, n <= 14).
class Solution {
public:
int F(int k, int n) {
}
};
例1:F(1, 3) = 6
例2:F(2, 3) = 10
例3:F(10, 10) = 167960
注意:你只需要提交Solution类的代码,你在本地可以编写main函数测试程序,但不需要提交main函数的代码. 注意不要修改类和函数的名称.
分析
动态规划,最简单直接的办法,代码写起来也比较简洁
F(k,n) = F(k, n - 1) + F(k - 1, n)
class Solution {public: int F(int k, int n) { vector<vector<int> > f; f.resize(k + 1, vector<int>(n + 1, 0)); for(int i = 0; i <= k; i++) { for(int j = 1; j <= n; j++) { if(i == 0) f[i][j] = j; else f[i][j] = f[i][j - 1] + f[i - 1][j]; } } return f[k][n]; }};
还有一种比较笨的办法,就是都算出来
class Solution {public: int F(int k, int n) { vector<vector <int> > res(k+1 ,vector<int>(n,0)); for (int j = 0; j < n; j++) { res[0][j] = j + 1; } for(int i = 1; i <= k; i++) { for (int j = 0; j < n; j++) { for(int m = 0; m <= j; m++) { res[i][j] += res[i - 1][m]; } } } return res[k][n-1];}};
阅读全文
0 0
- Sicily 算法模拟题 1001
- Sicily期末算法模拟题
- 第十九周:[sicily] 算法机考模拟题
- Sicily 无环图 | 算法期末机考模拟题
- Sicily 相连的1 | 算法期末机考模拟题
- Sicily 会议安排 | 算法期末机考模拟题
- Sicily 最大和 | 期末算法机考模拟题
- sicily 1003之模拟题
- sicily 1018之模拟题
- Sicily 1097 LED Modding(模拟题)
- Sicily.1041. Pushing Boxes(模拟题)
- sicily考试模拟题-1000超级和 1001会议室安排 1002二叉树比较
- 第十七周:[Sicily]机考模拟题1000-1006
- Sicily 1735 Encryption (模拟)
- Sicily 1321(Dijkstra算法)
- Sicily 算法设计题目
- Sicily 1001
- Sicily.1001
- MongDB学习2
- 基础练习 十六进制转八进制
- mt7610u mt7601u wifi 调试
- 马自达CX-5,中控台的点烟器没电
- H5研究一:定制一个最简单的H5 视频播放器<video></video>
- Sicily 算法模拟题 1001
- Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)问题解决
- 安卓4.4,去锁屏+禁止休眠
- 浅谈NB-IOT模块调试
- 在arch/arm/cpu/armv7/start.S中添加点灯程序
- 内部类的引用和注入
- 自学进程中的疑问
- Android Studio 最常用的15个插件整理
- 对于c,入个门!【菜鸟学习日记】