毎日のアルゴリズム: 階段登り問題

毎日のアルゴリズム: 階段登り問題

[[433205]]

階段を登っているとします。建物の最上部に到達するまでに n 歩かかります。

一度に1段または2段登ることができます。建物の最上階まで登るには、何通りの方法がありますか?

注: n は正の整数です。

例1:

  1. 入力: 2
  2. 出力: 2
  3. 説明: 建物の最上階に到達するには 2 つの方法があります。
  4. 1. 1次 + 1次
  5. 2. 2次

例2:

  1. 入力: 3
  2. 出力: 3
  3. 説明: 屋根に登るには 3 つの方法があります。
  4. 1. 1次 + 1次 + 1次
  5. 2. 1次 + 2次
  6. 3. 2次 + 1次

解決策: 動的プログラミング

動的プログラミング (DP) は、複雑な問題を小さな問題に分割して解決する戦略です。ただし、各サブ問題が互いに独立していることを要求する分割統治アルゴリズムとは異なり、動的プログラミングのサブ問題は相互に関連しています。

分割統治法は、その名の通り、分割して統治することです。複雑な問題を 2 つ以上の類似したサブ問題に分割し、そのサブ問題をさらに小さなサブ問題に分割して、簡単に解決できるまで続けます。サブ問題が解決されると、元の問題の解決策はサブ問題の解決策の組み合わせになります。

動的プログラミングを使用して問題を解決する場合、いくつかの重要な手順に従う必要があります。

  • サブ問題の定義
  • 繰り返し解決する必要があるサブ問題の一部を実装する
  • 境界条件を特定して解決する

ステップ1: サブ問題を定義する

dp[n]を使用してn番目のステップのオプションの数を表し、質問から最後のステップが2ステップまたは1ステップになる可能性があることがわかっている場合、n番目のステップのオプションの数は、n-1番目のステップのオプションの数とn-2番目のステップのオプションの数の合計に等しくなります。

ステップ2: 繰り返し解決する必要があるサブ問題を実装する

  1. dp[n] = dp[n−1] + dp[n−2]

ステップ3: 境界条件を特定して解決する

  1. // レベル 0、最初のオプション
  2. dp[0]=1
  3. // レベル 1 も 1 つのソリューションです
  4. dp[1]=1

最後のステップ: 末尾のコードをコードに変換し、いくつかのエッジケースを処理する

  1. 階段を登る =関数(n) {
  2. dp = [1, 1]とする
  3. ( i = 2; i <= n; i++ とします) {
  4. dp[i] = dp[i - 1] + dp[i - 2]
  5. }
  6. dp[n]を返す
  7. }

複雑性分析:

  • 時間計算量: O(n)
  • 空間計算量: O(n)

空間の複雑さを最適化:

  1. 階段を登る =関数(n) {
  2. res = 1、n1 = 1、n2 = 1とします。
  3. ( i = 2; i <= n; i++ とします) {
  4. レス = n1 + n2
  5. 1 = 2 です
  6. n2 = レス
  7. }
  8. 戻り
  9. }

空間計算量: O(1)

リートコード: https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-wen-ti-by-user7746o/

<<:  重力波検出からRNAシークエンシングまで、AIが科学的発見を加速させる方法

>>:  AI合成音声の潜在的な用途は何ですか?

ブログ    
ブログ    

推薦する

「ICV革新的アルゴリズム研究タスク」が正式にリリースされました!登録は11月18日に開始されます

中国自動車工程協会と国家インテリジェントコネクテッドビークルイノベーションセンターは、「2021年第...

2日間で星の数が1,000を突破:OpenAIのWhisperの蒸留後、音声認識が数倍高速化

少し前に、「テイラー・スウィフトが中国語を披露」する動画がさまざまなソーシャルメディアプラットフォー...

...

データ変換ツールにおけるAIの未来

人工知能はデータ変換ツールに革命をもたらし、効率、精度、リアルタイム処理を向上させます。シームレスな...

MIT は Google と提携して 7 台のマルチタスク ロボットをトレーニングし、9,600 のタスクで 89% の成功率を達成しました。

タスクの数が増えるにつれて、現在の計算方法を使用して汎用の日常的なロボットを構築するコストは法外なも...

Alibaba DAMO Academyの従業員が空き時間に「紙の知識グラフ」を作成: 非常に高速な検索と完全な視覚化

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

自動運転の4つの主要技術の簡単な分析

2017年5月に世界保健機関が発表したデータによると、世界中で毎年約125万人が交通事故で亡くなって...

パフォーマンスが20%向上しました! USTCの「状態シーケンス周波数領域予測」手法:学習サンプル効率の最大化の特徴

強化学習 (RL) アルゴリズムのトレーニング プロセスでは、サポートとして環境との相互作用のサンプ...

デジタル時代のパフォーマンス管理:現実と未来

デジタルパフォーマンス管理の変革デジタル目標設定パフォーマンス計画は、企業の繁栄戦略と業務を結び付け...

MetaはQualcommチップの使用を拒否し、そのサポートソフトウェアの成熟度に疑問を呈している

クアルコムは、計算能力とエネルギー効率の点で優れたチップを備えた、世界最大のスマートフォンプロセッサ...

2030年「メタバース」就職ガイド! CSは依然として非常に人気があり、博士号取得者の需要は衰えていません。

2016年にポケモンGOが世界を席巻したときのことを覚えていますか?当時、多くの人々は、拡張現実革...

機械学習アルゴリズムにおける分類知識の要約

この記事では、機械学習アルゴリズムにおける非常に重要な知識である分類、つまり入力データが属するカテゴ...

分散機械学習プラットフォームの比較: Spark、PMLS、TensorFlow、MXNet

[[200819]]本稿では、分散システムの観点から現在の機械学習プラットフォームのいくつかを研究...

AI を活用することで、銀行は年間 1 兆ドルの追加収益を得ることができる | マッキンゼーの最新調査レポート

AI を活用して財務管理や投資を行いたいと考えていますか? [[351941]]好むと好まざるとにか...