別の配列を使用して要素を最大化する JavaScript プログラム
この記事では、別の配列を使用して要素を最大化する JavaScript プログラムを実装します。 2 つの配列があり、2 番目の配列からいくつかの要素を選択し、最初の配列の要素を置き換える必要があります。これから説明する概念を実装する完全なコードを見ていきます。
問題の紹介
この問題では 2 つの配列があり、最初の配列のすべての要素を可能な限り最大にするか、単純に最初の配列のすべての要素の合計を最大にする必要があります。 2 番目の配列から要素を選択できますが、重要なのは、2 番目の配列から要素を選択する必要があるのは 1 回だけであり、その後は別の要素のみを選択できるということです。例えば -###
2 つの配列があります -リーリー
2 番目の配列の多くの要素は、最初の配列に存在する要素よりも大きいことがわかります。3 の代わりに 9、2 の代わりに 6、1 の代わりに 5 を選択できます。これにより、最終的な配列は次のようになります -
リーリー
2 つのメソッドが表示されます。どちらも配列と 2 つのポインターをソートすることで実装されていますが、唯一の違いはポインターを選択する場所です。###方法###
上記の例を見て、最初の配列の小さな要素を 2 番目の配列の最大の要素と交換できることがわかります。- ステップ 1
- - まず、両方の配列を昇順で並べ替えてから、2 番目の配列を逆にして降順で並べ替えます。
- - 両方の配列の最初のインデックスへの 2 つのポインターを維持します。
- - 最初の要素ポインターは最小の数値を指すため、その数値を 2 番目の配列の最大の数値と交換できます。
- - 反復ごとに 2 つの配列ポインターを交換し、ポインターをインクリメントします。
- - 最初の配列の現在のインデックスの要素が 2 番目の配列の要素と比較して大きくなった場合、それ以降のステップを停止できます。
- - 最後に、配列の要素を出力します。
###例### リーリー
時間と空間の複雑さ
要素を格納するために追加の配列を使用するため、空間の複雑さは O(N) になりますが、その答えを格納するには配列が必要であり、これは追加の空間とみなされる場合もあれば、そうでない場合もあります。
直接仕分け方法
前の方法では、配列の要素をソートしてから 2 つのポインター メソッドを使用しましたが、これを簡単に実行できる直接メソッドがあります -
new キーワードと Array キーワードを使用して、指定された 2 つの配列の合計または長さのサイズを持つ新しい配列を作成します。
- 指定された 2 つの配列のすべての要素を新しい配列に 1 つずつ埋め込みます。
- 新しく作成した配列をソートして要素を昇順に並べます。
- すべての最大の要素は最後に表示され、簡単に入手できます。 ###例### リーリー
- 時間と空間の複雑さ
###結論は###
上記のチュートリアルでは、別の配列を使用して要素を最大化する JavaScript プログラムを実装しました。 2 つの配列があり、2 番目の配列からいくつかの要素を選択し、最初の配列の要素を置き換える必要があります。どちらの方法でも並べ替えの概念が使用されていることがわかりました。 2 つのポインターを持つ 1 つのメソッドは O(N*log(N)) 時間と O(1) スペースを必要としますが、もう 1 つのメソッドは同じ時間かかりますが O(N) スペースかかります。以上が別の配列を使用して要素を最大化する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...
