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

配列逆アルゴリズム問題JavaScriptの解決策


以下の例のように、配列を反転する関数を作成する必要がありますが、配列に存在する特殊文字のインデックスを変更する必要はありません-

「#」がその特殊文字の場合、次の配列

[18,-4,'#',0,8,'#',5]

-

を返す必要があります
[5, 8, "#", 0, -4, "#", 18],

ここでは、インデックスを保持している「#」を除いて、数字が逆になっています。

このためのコードを書いてみましょう。

ここでは、2ポインターのアプローチを使用します。開始と終了は、それぞれアレイの左端と右端を指します。

いずれかのインデックスで特殊文字が見つかった場合は、そのインデックスをスキップして反復を続行し、特殊文字がないインデックスペアが見つかった場合は、それらの値を交換して、開始ポインターが右ポインターよりも小さい間、これを続行します。 。

const arr = [18,-4,'#',0,8,'#',5];
const reverseArray = (arr, special) => {
   let start = 0, end = arr.length - 1, temp;
   while(start < end){
      if(arr[start] === special){
         start++;
         continue;
      };
      if(arr[end] === special){
         end--;
         continue;
      };
      temp = arr[start];
      arr[start] = arr[end];
      arr[end] = temp;
      start++;
      end--;
   };
};
reverseArray(arr, '#');
console.log(arr);

出力

コンソールの出力は-

になります
[
   5, 8, '#', 0, -4, '#', 18
]

  1. JavaScriptの配列reverse()

    JavaScript配列reverse()関数は、配列内の要素の順序を逆にします 以下は、配列のreverse()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document&

  2. 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>