LeetCode 题解(218) : Pascal's Triangle II

来源:互联网 发布:二叉树的深度 java 编辑:程序博客网 时间:2024/05/22 06:31

题目:

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?

题解:

C++版:

class Solution {public:    vector<int> getRow(int rowIndex) {        vector<int> row(rowIndex + 1, 0);        row[0] = 1;        for(int i = 0; i < rowIndex; i++) {            for(int j = row.size() - 1; j > 0; j--) {                row[j] = row[j] + row[j - 1];            }        }        return row;    }};

Java版:

public class Solution {    public List<Integer> getRow(int rowIndex) {        List<Integer> row = new ArrayList<>();        for(int i = 0; i <= rowIndex; i++)            row.add(0);        row.set(0, 1);                for(int i = 0; i < rowIndex; i++) {            for(int j = rowIndex; j > 0; j--) {                row.set(j, row.get(j) + row.get(j - 1));            }        }        return row;    }}

Python版:

class Solution(object):    def getRow(self, rowIndex):        """        :type rowIndex: int        :rtype: List[int]        """        row = [0] * (rowIndex + 1)        row[0] = 1        for i in range(0, rowIndex):            for j in range(len(row) - 1, 0, -1):                row[j] = row[j] + row[j-1]                        return row

0 0
原创粉丝点击