JavaScriptで合計が最小のパス
問題
最初で唯一の引数として数値の2次元配列を受け取るJavaScript関数。
この関数は、各行から正確に1つの要素を選択することにより、2次元配列からパスを見つける必要があり、隣接する行から選択された2つの要素が同じ列に存在してはなりません。これらすべてのパスのうち、関数は最小の合計を持つパスの合計を返す必要があります。
たとえば、関数への入力が-
の場合const arr = [ [4, 7, 1], [2, 8, 3], [5, 6, 9] ]
その場合、出力は-
になります。const output = 9;
出力の説明
すべての有効なパスが-
であるため4、8、9 | 4、8、6 | 4、3、6 | 4、3、5 |
7、2、6 | 7、2、9 | 7、3、6 | 7、3、5 |
1、2、6 | 1、2、9 | 1、8、9 | 1、8、5 |
そして、これらすべての中で、[1、2、6]の合計は9が最小です。
例
このためのコードは-
になりますconst arr = [ [4, 7, 1], [2, 8, 3], [5, 6, 9] ] const minimumPathSum = (arr = []) => { let first = [0, null]; let second = [0, null]; for(let row = arr.length - 1; row >= 0; row--){ let curr1 = null; let curr2 = null; for(let column = 0; column < arr[row].length; column++){ let currentSum = arr[row][column]; if(column !== first[1]){ currentSum += first[0]; }else{ currentSum += second[0]; }; if(curr1 === null || currentSum < curr1[0]){ curr2 = curr1; curr1 = [currentSum, column]; }else if(curr2 === null || currentSum < curr2[0]){ curr2 = [currentSum, column]; }; }; first = curr1; second = curr2; }; return first[0]; }; console.log(minimumPathSum(arr));
出力
そして、コンソールの出力は-
になります9
-
JavaScriptでのConstとLet。
Constとletは、ブロックスコープの変数を宣言するためにES2015で導入されました。 letを使用して宣言された変数は再割り当てできますが、constを使用して宣言された場合は再割り当てできません。 以下は、JavaScriptでletとconstを示すコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="wi
-
JavaScript配列を条件付きで結合しますか?
以下は、JavaScriptの条件を持つJavaScript配列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>