今日、クラスメートがファングループでアルゴリズムに関する質問をしました。 対話のトピックは次のとおりです。 質問では、各要素が 1 回だけ表示されるように、順序付けられた配列 nums から重複する要素を削除する必要があります。削除後の配列の長さを返します。追加の配列スペースは使用されず、空間計算量は O(1) です。 この学生が間違いを犯した理由は、O(1)空間計算量が何を意味するのか理解していなかったからです。実際には 3 行目で新しいリストを生成します。このリストの長さは、元のリストの長さに依存します。元のリスト内の重複しない要素が多いほど、新しいリストは長くなるため、その空間計算量は O(n) になります。さらに、この質問では、新しいリストを生成するのではなく、元のリストを「その場で」変更する必要があります。 まず、O(1)空間計算量とは何かについて説明しましょう。これは、1 つの変数のみを適用できるという意味ではなく、適用する追加変数の数は一定であり、入力リスト内の要素の数に応じて変化しないという意味です。したがって、10,000 個の変数を適用する場合でも、元の入力リストに 1 つの要素がある場合でも 1 億個の要素がある場合でも、常にこれらの 10,000 個の変数のみが使用されるため、空間計算量は O(1) であるとも言えます。 ここで、インプレース変更と呼ばれるものについて説明しましょう。つまり、新しいリストを追加で使用せずに、入力リストを直接変更します。 Python では、リストに要素を追加するには xxx.append(yy) を使用し、インデックスに従ってリストから要素を削除するには xxx.pop(index) を使用することがわかっています。どちらもインプレース変更です。 この質問に戻りますが、これは LeetCode の簡単な質問です。より良いインターネット企業に応募したい場合は、この種の質問に簡単に答えられるはずです。 この問題の鍵となるのは、元のリストが順序付きリストであるため、繰り返される数字が連結されている必要があるということです。したがって、現在の要素が前の要素と同じかどうかを 1 つずつ確認するだけで済みます。同じ場合は、現在の要素を削除します。異なる場合は、次の要素を確認します。 それでは、コードを書いてみましょう:
実行効果は以下の図に示されています。 この問題の時間計算量は O(n) であることに注意してください。これは、インデックスに従ってリストから要素が削除されると、後続の要素が 1 つずつ前方に移動するためです。一般的に言えば、時間の計算量と空間の計算量を同時に達成することはできません。空間を時間と交換したり、時間を空間と交換したりすることはできますが、空間や時間を占有せずに両方を同時に行うことは困難です。 この記事はWeChatの公開アカウント「WeiwenCode」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、WeiwenCode の公開アカウントにご連絡ください。 |
<<: ドローンの耐久性の低さの問題を軽減するために、一般の人がこれを行うことができます
>>: シナリオイノベーションがスマート発電所を強化 | Ruijie Networks が 2021 年スマート発電所フォーラムに登場
シーケンスモデルにおけるHMM(隠れマルコフモデル)を習得した後は、別のシーケンスモデルであるCRF...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
大規模言語モデル (LLM)、特に生成事前トレーニング済みトランスフォーマー (GPT) モデルは、...
ビッグデータダイジェスト制作出典: IEEE近年、ピンホール写真に対する人々の関心は年々高まり、関連...
導入:コード生成は、プログラマーの生産性を大幅に向上させる可能性を秘めた重要な AI 問題です。自然...
現在、アクセス制御にはより高度な技術と新しいアプリケーション市場があります。アクセス制御システムで現...
自然言語処理とは、自然言語を使用して人間とコンピューターが効果的にコミュニケーションするためのさまざ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
導入ハードウェアの性能向上と顔データ量の増加に伴い、顔認識はますます成熟し、商業的な用途もますます増...
Huawei Connect 2021では、中国科学技術情報研究所(CITI)、AITISA(新世代...
[[271155]]ビッグデータと AI ツールを組み合わせることで、新しい形式の分析と自動化が可能...
2022年全国人民代表大会と中国人民政治協商会議が開幕した。3月5日には2022年政府活動報告が発...
[[422468]]この記事はWeChatの公開アカウント「amazingdotnet」から転載した...
[[416792]]この記事は、董澤潤氏が執筆したWeChat公開アカウント「董澤潤の技術ノート」か...