pascal’s triangle ii

Pascal’s Triangle II

Given an index k, return the k row of the Pascal’s triangle.

For example, given k = 3,
Return [1,3,3,1].

代码一 (3ms)

class Solution {
    unsigned long long
    choose(unsigned long long n, unsigned long long k) {
        if (k > n) {
            return 0;
        }
        unsigned long long r = 1;
        for (unsigned long long d = 1; d <= k; ++d) {
            r *= n--;
            r /= d;
        }
        return r;
    }

public:
    vector<int> getRow(int rowIndex) {
        int row = rowIndex + 1;
        vector<int> v;
        for (int i = 0; i < row; i++)
        {
            v.push_back(choose(row - 1, i));
        }
        return v;
    }

};