[LeetCode] Pascal's Triangle II
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?
求帕斯卡三角形的一行。
利用帕斯卡三角的性质:除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和。
所以每一行都是由它的上一行计算得出。可以用一个数组就可以计算帕斯卡三角形的每一行。
从每一行的最后一个元素开始计算
res[j] = res[j] + res[j - 1]
算法过程如图:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
。。。。。。
class Solution { public: vector<int> getRow(int rowIndex) { vector<int> res(rowIndex + 1, 0); res[0] = 1; for (int i = 1; i <= rowIndex; i++) for (int j = i; j > 0; j--) res[j] += res[j - 1]; return res; } }; // 0 ms
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步