※ Leetcode - Dynamic Programming - 119. Pascal's Triangle II(倒叙滚动数组求解杨辉三角第k行)
来源:互联网 发布:吃饭前拍照知乎 编辑:程序博客网 时间:2024/06/07 11:53
1. Problem Description
Given an index k, return the kth row of the Pascal's triangle.
For example, given k = 3,
Return [1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
输出杨辉三角第k行。
2. My solution
题目要求空间复杂度为O[k],也就是要使用滚动数组。
然而如果正序求解会出现这样的问题:
Code://i为行数从1开始,j为列数从0开始,之前已经把vector内所有元素赋值为1
for(int i=1; i<=rowIndex+1; i++) for(int j=1; j<i-1; j++) res[j]=res[j-1]+res[j];
Result:
即滚动数组会使用这一行计算中更新过的数据,而不是上一行的数据。
因此我们逆序求解。
Code:
vector<int> getRow(int rowIndex) { vector<int>res; for(int i=1; i<=rowIndex+1; i++) res.push_back(1);// 倒叙求解(如果正序更新时会使用这轮更新过的数据) for(int i=1; i<=rowIndex+1; i++) for(int j=i-2; j>=1; j--) res[j]=res[j-1]+res[j]; return res; }
0 0
- ※ Leetcode - Dynamic Programming - 119. Pascal's Triangle II(倒叙滚动数组求解杨辉三角第k行)
- 119. Pascal's Triangle II (杨辉三角 第k行)
- (LeetCode)Pascal's Triangle II --- 杨辉三角进阶(滚动数组思想)
- 【LeetCode】Pascal's Triangle II (杨辉三角)
- leetcode_119. Pascal's Triangle II 打印杨辉三角的第k行,只使用O(k)个空间
- [leetcode]Pascal's Triangle II (杨辉三角形求输出第k行的值)
- [LeetCode]-Pascal's Triangle I&II 杨辉三角问题
- [leetcode, python] Pascal's Triangle II 杨辉三角
- LeetCode 119. Pascal's Triangle II(帕斯卡三角)
- LeetCode OJ 之 Pascal's Triangle II (杨辉三角II )
- 【LeetCode】Pascal's Triangle (杨辉三角)
- 【LeetCode】Pascal's Triangle (杨辉三角)
- (LeetCode)Pascal's Triangle --- 杨辉三角
- Leetcode 119. Pascal's Triangle II 杨辉三角2 解题报告
- [LeetCode][119. Pascal's Triangle II][easy]Java实现,杨辉三角
- LeetCode-119:Pascal's Triangle II (返回杨辉三角指定行)
- LeetCode-118、119. Pascal's Triangle (JAVA)杨辉三角
- LeetCode | Pascal's Triangle(杨辉三角)
- 开篇有益,与诸君共勉
- Dynamic Time Warping 动态时间规整算法
- 大数相除算法
- ToggleButton 点击更换图片的方法
- Socket,IP,端口,TCP,UDP
- ※ Leetcode - Dynamic Programming - 119. Pascal's Triangle II(倒叙滚动数组求解杨辉三角第k行)
- ToggleButton按钮
- hdu 4549 M斐波那契数列
- KMP算法
- (NYoj 325 zb的生日 和 456 邮票分你一半) 两个一样的题目不同的处理方法。(注意看题目中参数的较小值)
- Hdu 3691 Nubulsa Expo(无向图最小割)
- PyQt5教程(二)——菜单与工具栏
- git clone 一些简单笔记
- jquery截取图片后,ajax异步提交该图片