2018年11月2日 星期五

[LeetCode] 118. Pascal's Triangle


  • Problem: 118 Pascals's Triangle, 主要為該層元素為上一層的左邊加上一層右邊而得
  • Concept:
    • 算是滿基本的題目, 稍微將 index 列出來, 可以發現
    • A[i][j] = A[i-1][j-1] + A[i-1][j]
    • 但還是需要注意 index 從 0開始, 必須習慣一下
  • Implementation
    • class Solution {
      public:
          vector> generate(int numRows) {
              vector> result;
      
              for (int i = 0; i < numRows; i++) {
                  vector row;
                  
                  row.push_back(1);
                  for (int j = 1; j < i; j++) {
                      int val = result[i - 1] [j - 1] + result[i - 1][j];
                      row.push_back(val);
                  }
                  // no need to add right 1 at first row
                  if (i > 0) row.push_back(1);
                  
                  result.push_back(row);
              }
              return result;
          }
      };
      

沒有留言:

張貼留言