この記事はWeChatの公開アカウント「Programmer Bear」から転載したもので、著者はDineです。この記事を転載する場合は、プログラマーXiaoxiongの公式アカウントまでご連絡ください。 序文みなさんこんにちは。私はHuaweiのプログラマー、Xiao Xiongです。今日は、バイナリツリーに関連する高頻度の面接の質問を紹介します。この質問は、過去6か月間にGoogle、ByteDance、Microsoft、Amazonなどの大手企業で面接の質問として使用されました。それは、Likouの質問98 - バイナリ検索ツリーの検証です。 この記事では、主にこの問題を解決するための再帰と深さ優先探索の 2 つの方法を紹介します。参考になれば幸いです。 二分探索木の検証バイナリ ツリーのルートが与えられた場合、それが有効なバイナリ検索ツリーであるかどうかを判断します。 有効な二分探索木は次のように定義されます。 ノードの左のサブツリーには、現在のノードより小さい数値のみが含まれます。 ノードの右サブツリーには、現在のノードより大きい数値のみが含まれます。 すべての左および右のサブツリー自体もバイナリ検索ツリーである必要があります。 例1 例2とヒント 二分探索木タイトルは、有効な二分探索木の定義が次のようになることを示唆しています。
例例1 例1 例2 例3 二分探索木の判定上記の例の場合、二分探索木の判定方法によれば、上記の例が二分探索木であるかどうかは以下のように判定されます。
問題解決二分探索木の定義によれば、木が二分探索木であるかどうかを判断するには、各ノードが二分木の特性を満たしているかどうかを判断する必要があり、判断の根拠は同じであるため、再帰的な方法を使用してこの問題を解決できます。 再帰上記の判断の根拠(現在のノードに左と右の子ノードがあると仮定)は次のとおりです。
上記の考え方に基づいて、上限と下限を設定することで、ノードがバイナリ検索ツリーの特性を満たしているかどうかを判断できます。 上限と下限がある場合は、ノードが境界内にあるかどうかを判断します。境界内にない場合は、バイナリ検索ツリーではありません。境界内にない場合は、ノードの値を上限として使用し、左のサブツリーを再帰的に決定します。ノードの値を下限として使用し、右のサブツリーを再帰的に決定します。 知らせ空の木は二分探索木です。 コードを見せてくださいC
C++
ジャワ
Python3
Go言語
複雑性分析時間計算量: O(n)、ここで n はバイナリ ツリー ノードの数です。 空間計算量: O(n)。 深さ優先探索バイナリ検索木の特性によれば、バイナリ検索木に対して順序どおりのトラバーサルを実行すると、結果の配列は昇順になる必要があります。したがって、この特徴に基づいて、ツリーが二分探索ツリーであるかどうかを判断できます。 インオーダートラバーサルを使用する場合、バイナリツリーのすべてのノードの値を配列に格納し、配列が昇順になっているかどうかを判断します。手順は少し面倒です。 配列が昇順になっているかどうかを判断するには、配列の次の要素が前の要素より大きいかどうかを判断するだけで済みます。したがって、順序どおりにトラバーサルするときに前のノードの値を保存する変数を設定し、現在のノードの値が変数によって保存された値より大きいかどうかを判断できます。 大きくない場合は、ツリーがバイナリ検索ツリーではないことを意味します。それ以外の場合は、トラバースと判断を続けます。 コードを見せてくださいC++
ジャワ
複雑性分析時間計算量: O(n)、ここで n はバイナリ ツリー ノードの数です。 空間計算量: O(n)。 |
<<: 人工知能の時代において、ロボットを超える子どもたちが身につけるべき能力とは何でしょうか?
>>: 2050年の世界はどのようになっているでしょうか?新たなエネルギー源が出現し、人工知能が社会に浸透
10月13日、Qunzhi Consultingが昨日発表した最新の調査によると、アルゴリズムとハー...
こんにちは、皆さん。私は Luga です。今日は、人工知能 (AI) エコシステムに関連するテクノロ...
サイバー攻撃の性質と標的が多様化するにつれて、サイバーセキュリティの専門家が脆弱性に対処する方法を決...
先週、Googleのアフリカ系アメリカ人倫理学者ティムニット・ゲブル氏の「解雇」がTwitterやR...
調査によると、人工知能(AI)ソリューションは現在急速に成長している市場であり、2020年までに1,...
オープンソースの AI ディープラーニングを適用して、顔の表情の特徴に基づいて画像のキャプションを生...
政府は、他の経済的、社会的進歩と同様に、AI とデータの競争力を重視すべきです。研究への投資や技術リ...
世界的なデジタル変革ブームが到来し、ビジネス環境が急速に変化する中、業界の再編と再編が加速しています...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
ArcSoft ビジュアルオープンプラットフォームであるArcFace 3.0の発売以来、アルゴリ...
Google は今週開催された Cloud Next カンファレンスで、さまざまな機械学習ツール、顧...
ガーディアン紙、BBC、スカイニュースチャンネルなど複数の外部情報源によると、英国の物理学者スティー...
新型コロナウイルス感染症のパンデミックが新たな課題をもたらしているため、組織はパンデミックによるビジ...
[51CTO.com クイック翻訳] 機械学習はデータサイエンスの頂点であり、教師あり学習は機械学習...