LeetCode 119. Pascal's Triangle II
原题链接在这里:https://leetcode.com/problems/pascals-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?
题解:
与Pascal's Triangle相似。用上一行作为历史记录算下一行,因为需要使用前面的历史数据,所以要从后往前更新res.
Time Complexity: O(n^2).
Space: O(k), res space.
AC Java:
1 public class Solution { 2 public List<Integer> getRow(int rowIndex) { 3 List<Integer> res = new ArrayList<Integer>(); 4 if(rowIndex < 0){ 5 return res; 6 } 7 res.add(1); 8 for(int i = 0; i<rowIndex; i++){ 9 //因为这里需要使用前面的历史数据,所以不能从左到右更新,必须从右向左更新 10 for(int j = res.size()-1; j>0; j--){ 11 res.set(j, res.get(j)+res.get(j-1)); 12 } 13 res.add(1); 14 } 15 16 return res; 17 } 18 }