目次
問題の紹介
ホームページ ウェブフロントエンド jsチュートリアル 別の配列を使用して要素を最大化する JavaScript プログラム

別の配列を使用して要素を最大化する JavaScript プログラム

Sep 05, 2023 pm 08:09 PM

使用另一个数组最大化元素的 JavaScript 程序

この記事では、別の配列を使用して要素を最大化する JavaScript プログラムを実装します。 2 つの配列があり、2 番目の配列からいくつかの要素を選択し、最初の配列の要素を置き換える必要があります。これから説明する概念を実装する完全なコードを見ていきます。

問題の紹介

この問題では 2 つの配列があり、最初の配列のすべての要素を可能な限り最大にするか、単純に最初の配列のすべての要素の合計を最大にする必要があります。 2 番目の配列から要素を選択できますが、重要なのは、2 番目の配列から要素を選択する必要があるのは 1 回だけであり、その後は別の要素のみを選択できるということです。例えば ​​-###

2 つの配列があります -

リーリー

2 番目の配列の多くの要素は、最初の配列に存在する要素よりも大きいことがわかります。

3 の代わりに 9、2 の代わりに 6、1 の代わりに 5 を選択できます。これにより、最終的な配列は次のようになります -

リーリー

2 つのメソッドが表示されます。どちらも配列と 2 つのポインターをソートすることで実装されていますが、唯一の違いはポインターを選択する場所です。

###方法###

上記の例を見て、最初の配列の小さな要素を 2 番目の配列の最大の要素と交換できることがわかります。

    ステップ 1
  • - まず、両方の配列を昇順で並べ替えてから、2 番目の配列を逆にして降順で並べ替えます。

  • ステップ 2
  • - 両方の配列の最初のインデックスへの 2 つのポインターを維持します。

  • ステップ 3
  • - 最初の要素ポインターは最小の数値を指すため、その数値を 2 番目の配列の最大の数値と交換できます。

  • ステップ 4
  • - 反復ごとに 2 つの配列ポインターを交換し、ポインターをインクリメントします。

  • ステップ 5
  • - 最初の配列の現在のインデックスの要素が 2 番目の配列の要素と比較して大きくなった場合、それ以降のステップを停止できます。

  • ステップ 6
  • - 最後に、配列の要素を出力します。

    ###例### リーリー

    時間と空間の複雑さ
上記のコードの時間計算量は O(N*log(N)) です。ここで、N は指定された配列のサイズであり、ここでの対数因数は配列の並べ替えに使用する並べ替え関数によるものです。

要素を格納するために追加の配列を使用するため、空間の複雑さは O(N) になりますが、その答えを格納するには配列が必要であり、これは追加の空間とみなされる場合もあれば、そうでない場合もあります。

直接仕分け方法

前の方法では、配列の要素をソートしてから 2 つのポインター メソッドを使用しましたが、これを簡単に実行できる直接メソッドがあります -

new キーワードと Array キーワードを使用して、指定された 2 つの配列の合計または長さのサイズを持つ新しい配列を作成します。

  • 指定された 2 つの配列のすべての要素を新しい配列に 1 つずつ埋め込みます。

  • 新しく作成した配列をソートして要素を昇順に並べます。

  • すべての最大の要素は最後に表示され、簡単に入手できます。

  • ###例### リーリー
  • 時間と空間の複雑さ

    上記のコードの時間計算量は O(N*log(N)) です。ここで、N は指定された配列のサイズであり、ここでの対数因数は配列の並べ替えに使用する並べ替え関数によるものです。
要素を格納するために追加の配列を使用するため、空間の複雑さが O(N) になります。

###結論は###

上記のチュートリアルでは、別の配列を使用して要素を最大化する JavaScript プログラムを実装しました。 2 つの配列があり、2 番目の配列からいくつかの要素を選択し、最初の配列の要素を置き換える必要があります。どちらの方法でも並べ替えの概念が使用されていることがわかりました。 2 つのポインターを持つ 1 つのメソッドは O(N*log(N)) 時間と O(1) スペースを必要としますが、もう 1 つのメソッドは同じ時間かかりますが O(N) スペースかかります。

以上が別の配列を使用して要素を最大化する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

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

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

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

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

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

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

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

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

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

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

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

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

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

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

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

See all articles