119. 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?

Solution:

這題的思路是抓住上一行是如何轉(zhuǎn)化為下一行的:

  1. 先在上一行的最左邊插入一個1
  2. 然后在此時的上一行中除了頭尾兩個數(shù)之外,每個數(shù) [i] = [i] + [i + 1],得到新的一行。

將Pascal's Triangle按如下形狀整理可更加直觀地表現(xiàn)以上思路:

    1
   11
  121
 1331
14641

code:

public class Solution 
{
    public List<Integer> getRow(int rowIndex) 
    {
        if(rowIndex < 0)
            return new ArrayList<>();
        
        List<Integer> row = new ArrayList<>();
        for(int i = 0; i <= rowIndex; i ++)
        {
            row.add(0, 1);
            
            //for (int j = 1; j < row.size() - 1; j ++)
            for(int j = 1; j < i; j ++)
                row.set(j, row.get(j) + row.get(j + 1));
        }
        return row;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容