[LeetCode] #119 Pascal's Triangle II 解題

題目連結

題型解說

這是一題難度為簡單的題目

需要設計一個方法,此方法會傳入一個整數 rowIndex

回傳一個巴斯卡三角形中的 rowIndex 層

解題思路

這題是 [LeetCode] #118 Pascal's Triangle 解題 的延伸

原本是要回傳整個巴斯卡三角形,現在只要回傳某一層

且空間複雜度只能是 O(k),也就是只能用一個 List

那麼就把每一層的值算出來,然後把下一層的值覆蓋上去

程式碼

Java

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