Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで最も長く増加するシーケンスの総数


問題

最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。

私たちの関数は、最も長く増加するサブシーケンス(連続または非連続)の数を見つけるために必要です。

たとえば、関数への入力が

入力

const arr = [2, 4, 6, 5, 8];

出力

const output = 2;

出力の説明

最も長く増加する2つのサブシーケンスは、[2、4、5、8]と[2、4、6、8]です。

以下はコードです-

const arr = [2, 4, 6, 5, 8];
const countSequence = (arr) => {
   const distance = new Array(arr.length).fill(1).map(() => 1)
   const count = new Array(arr.length).fill(1).map(() => 1)
   let max = 1
   for (let i = 0; i < arr.length; i++) {
      for (let j = i + 1; j < arr.length; j++) {
         if (arr[j] > arr[i]) {
            if (distance[j] <= distance[i]) {
               distance[j] = distance[i] + 1
               count[j] = count[i]
               max = Math.max(distance[j], max)
            } else if (distance[j] === distance[i] + 1) {
               count[j] += count[i]
            }
         }
      }
   }
   return distance.reduce((acc, d, index) => {
      if (d === max) {
         acc += count[index]
      }
      return acc
   }, 0)
}
console.log(countSequence(arr));

出力

2

  1. JavaScript数値関数

    JavaScript Number()関数は、引数として渡されたオブジェクト値をそれぞれの数値に変換します。 以下は、JavaScript Number()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &

  2. JavaScriptの番号パターン

    ユーザーにテキスト入力とボタンを提供するJavaScriptおよびHTMLプログラムを作成する必要があります。ユーザーが入力に任意の値(たとえば5)を入力してボタンをクリックすると、画面に次のパターンが印刷されます。 (n =5の場合) 01 01 02 01 02 03 01 02 03 04 01 02 03 04 05 例 このためのコードは-になります <html> <head> <title>JavaScript Number Patterns</title> <script type="text/javascrip