[leetcode]問題解答と解説。118. Pascal’s Triangle [JavaScript]

[leetcode]問題解答と解説。118. Pascal's Triangle [JavaScript]

皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。
leetCodeの使い方や解説ではなく実際に問題を解決するために何をしたか
をメモ書きして行きます

私はある決意をして今挑んでいます。
モチベーションを保つためだけにこれをやっています。

では今日のleetCode。
【118. Pascal's Triangle】の解決策と方法。自分がまず挑戦して
やったことをさらけ出します。

※下にある自分のコードは自分で設けた制限時間内に書けたところまです。

これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。

森田賢二のleetCode

森田賢二のleetCode

[leetcode] 118. Pascal's Triangle ルール

Given an integer numRows, return the first numRows of Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

gifアニメーション見てもらった方がいいかもしれない

Example 1:

Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

Input: numRows = 1
Output: [[1]]

Constraints:

1 <= numRows <= 30

exampleは実際の問題ページを見てください

[leetcode] 118. Pascal's Triangle 問題ページ

118. Pascal's Triangle

[leetcode] 118. Pascal's Triangle

my code is not good(time out & worng)

var generate = function(numRows) {
    for(let r = 1; r <= numsRows, r++){
        let arr = Array(r).fill(1)
        for(let j = 0; j < arr.length; j++){
            arr[j]
        }
    }
};

runtimeerror
全くdpでやる実装イメージつかなかった。

[leetcode] 118. Pascal's Triangle。discussの中の一つの解答例

数ある中からJavaScriptのもので、理解しやすい解説をピックアップしました。
discussから見ればさらにもっと違う方法で真似したくなるものがあるかもしれない

JavaScriptでfilterされている、discussはこちらから

気に入った解答1

var generate = function(numRows) {
    var pascal = []; // 全体
    for (var i = 0; i < numRows; i++) {
        pascal[i] = []; // 行が変わったらrowを作る
        pascal[i][0] = 1; // rowの一番最初は1
        for (var j = 1; j < i; j++) {
            pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j] // 前のrowの前後を足す
        }
        pascal[i][i] = 1; // 最後のrow値
    }
    return pascal;
};

[leetcode] 118. Pascal's Triangle をやってみて感想

順を追って考えればできたのかもしれない。引き出しが足りない

カテゴリー leetCode