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

JavaScriptのいくつかの数に等しい絶対差を持つ最長のサブ配列


最初の引数として数値の配列(たとえばarr)を取り、2番目の引数として数値(たとえばnum)を受け取るJavaScript関数を作成する必要があります。関数は、各ペアの絶対差がnum以下である最長のサブアレイ(連続または非連続)の長さを見つけて返す必要があります。

たとえば、入力配列と数値が-

の場合
const arr = [7, 9, 8, 6, 6, 3];
const num = 1;

その場合、出力は-

になります。
const output = 3,

目的のサブアレイは[7、6、6]

であるため

このためのコードは-

になります
const arr = [7, 9, 8, 6, 6, 3];
const maximumSubarray = (arr = [], num = 1) => {
   if(!arr.length){
      return 0;
   };
   const maximum = arr.reduce((acc, val) => Math.max(acc, val));
   const buckets = new Array(maximum + 1);
   buckets.fill(0);
   const { length } = arr;
   for(let i=0; i< length; i++){
      buckets[arr[i]] += num;
   };
   let max = 0;
   for(let j=1; j< maximum + 1; j++) {
      let curr = buckets[j];
      let prev = buckets[j - 1];
      if(prev != 0 && prev + curr > max) {
         max = prev + curr;
      };
   };
   return max;
};
console.log(maximumSubarray(arr));

出力

そして、コンソールの出力は-

になります
3

  1. JavaScript Number.MAX_VALUE&Number.MIN_VALUEと例

    JavaScriptのNumber.MAX_VALUEおよびNumber.MIN_VALUEプロパティは、JavaScriptで可能な最大および最小の数値表現をそれぞれ表します。 以下は、JavaScript Number.MAX_VALUE&Number.MIN_VALUEプロパティのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" co

  2. C++の制限以下の絶対差分を持つ最長の連続サブアレイ

    numsと呼ばれる整数の配列と整数の制限があるとすると、このサブ配列の任意の2つの項目間の絶対差が指定された制限以下になるように、最も長い空でないサブ配列のサイズを見つける必要があります。 したがって、入力がnums =[8,2,4,7]、limit =4の場合、出力は2になります。これは、- [8]そう|8-8| =0<=4。 4. 4. 4. [2]そう|2-2| =0<=4。 [2,4]だから|2-4| =2<=4。 4. [4]そう|4-4| =0<=4。 [4,7]そう|4-7| =3 <=4. [7]そう|7-