この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載したもので、著者はsisterAnです。この記事を転載する場合は、「3分で学ぶフロントエンド」公式アカウントまでご連絡ください。 文字列が与えられた場合、重複する文字を含まない最長の部分文字列の長さを計算します。 例1:
例2:
例3:
解決策1: アレイのメンテナンス解決策: 配列を使用してスライディングウィンドウを維持する 文字列を走査し、文字がスライディングウィンドウ配列内にあるかどうかを判定する
トラバース後、最大値を返す 理解を助けるために絵を描きます: コード実装:
時間計算量: O(n2)。arr.indexOf() の時間計算量は O(n)、arr.splice(0, index+1) の時間計算量は O(n) です。 空間計算量: O(n) 解決策2: 下付き文字を維持する解決策: スライディングウィンドウを維持するために下付き文字を使用する コード実装:
時間計算量: O(n2) 空間計算量: O(n) 解決策3: 最適化されたマップ解決: マップを使用して、これまでに走査された文字を保存します。キーは文字で、値は添え字です。 i を使用して、繰り返しのない部分文字列の開始添え字をマークし、j は現在のトラバーサル文字の添え字です。 文字列をトラバースし、現在の文字がマップ内に既に存在するかどうかを判断します。存在する場合は、インデックス i で始まる非繰り返し部分文字列を、同じ文字の次の位置に更新します。この時点で、i から j までが最新の非繰り返し部分文字列であり、max を更新し、現在の文字とインデックスをマップに格納します。 最後に最大値を返す コード実装:
時間計算量: O(n) 空間計算量: O(n) |
<<: コンテンツ管理と AI – ContentOps の未来
>>: ロボットが人間の「仲間」となり、人間と機械の関係が変化する。これは良いことなのか、悪いことなのか?
[[396914]]今日、クラスメートがファングループでアルゴリズムに関する質問をしました。対話のト...
MIT 博士課程の学生による驚くべき発見: Transformer の特定のレイヤーを非常に単純に削...
ビッグデータは人々にとって巨大な概念であるようです。しかし、多くの企業がすでに業務にビッグデータを活...
データセンターに AI を導入することを検討している場合は、まず投資すべきハードウェアとインフラスト...
認知科学の分野では、人間が継続的な学習を通じて認知を変化させるプロセスを認知ダイナミクスと呼びます。...
10月12日、外国メディアは関係者の話として、人工知能(AI)研究企業OpenAIが来月、開発者向け...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[416631]]現在、NLP分野ではTransformerベースのモデルが人気を博しており、大規...
グーグルは水曜日、AIを収益化する方法に対する回答を求める圧力が高まる中、同社がこれまでで最も強力だ...
Googleは10月13日、今週の木曜日からGoogleの「Search Generative E...
[[374480]] 12月31日、AI研究所は2020年のAIの進歩トップ10を発表しました。新年...
機械学習と人工知能に関しては、スキャンダルが後を絶ちません。過去数ヶ月、マイクロソフトのジャーナリス...
多くの企業が、データの取得から洞察の獲得まで、スムーズに実行されるパイプラインの構築に依然として苦労...