一般的なアルゴリズム筆記試験や面接の質問

 

1問題 :?ですが、IT Aループである(リンクリストがあるかどうかを判断するためにループ?)

リンク・リストへの先頭ポインタwehaveと仮定する。また、我々が知っているassumethatリストは、シングルリンクされています。あなたは、このリンクリストは、リストの長さであるwheren O(n)の時間とO(1)スペースを使用してループを含むcheckwhetherするアルゴリズムを考え出すことはできますか?さらに、あなたはO(n)の時間で行うことができますし、登録天然記念物?

この方法は:最初からの2つのポインタ、前方タイムノード、ノード2進み、2Nまで、二つのポインタが一致してもよく、全くリングが正常に停止されていない場合。

また、あなたはリストの中間ノードを見つけることができます。同上。

 

問題2: Nカウントダウンアルゴリズムの複雑さの設計は、リストのm番目の要素を見つけます。最後の要素は最後から二番目の0であると仮定されます。

ヒント:ダブルポインタを探します

 

問題3:プラスチックLONG Aの数を決定する最も簡単な方法は、(2のn乗)2 ^ nは

ヒント:X&(X-1)

 

問題4: 2つのビーカー、塩、砂糖のスプーンをすくうためにスプーンで砂糖、塩、攪拌、砂糖混合物のスプーンをスクープは、不純物次の2つのビーカーを聞いてビーカーのだろうか?

ヒント:同じ。不等を仮定不純物は、その後、不純物は不合理、カップ体重が変わり、カップバック。

 

問題5: 64を占有することは、各バイトのURLそれぞれ、二つのファイル、各保存50億URL B、あなた与え、メモリの制限は4Gで、あなたは、B共通ファイルのURLを見つけるてみましょう。

方法1:ハッシュテーブルを使用します。適切なスケールでの要素、ハッシュ制御とハッシュテーブルを作成します。ハッシュのa、bの要素を検索し、既存のurlはない新しいファイル、次の検索を見つけました。見つかった場合、ハッシュ・テーブル・エントリが特定の閾値、再ハッシュに新しい要素未満である場合、対応するハッシュエントリが削除されます。サイクル再び。

方法2:ハッシュテーブルのエントリを高めるためには、レコードファイルA、Bに属します。長いハッシュテーブルに配置されているエントリがない限り、同じ項目が削除されます。注:挿入、削除、頻繁に引き起こして、重複の多くがあるかもしれません。 

 

問題6:あなたの単語を与えるために単語bは単語交換の文字を連続的に付加することによって得ることができるならば、A、Bの定義は、単語の弟です。今、あなたの辞書を与えるために、ユーザーが単語を入力し、あなたはどのように多くの兄弟の言葉に応じて単語辞書を探してみましょう。

ヒント:アルファベット順に各ワードは、兄弟(ワード署名など)をアルファベット順に同じ単語を有します。兄弟を見つけるために、単語の署名ワードを使用します。

 

問題7: 5バレルボール、バケツが正常でない、私はボールのバケツを見つけることは正常ではないバランスで、体重とボールの重症度との関係を知りません。

 

問題8: 2つのビーカー、メートルに及びnはボリュームL(!M = N)、ならびに水ですがどのボリュームから水のエネルギーでは、これらの2つのビーカーを使用?

M、N、M + N、MN、及び線形重ね合わせの組み合わせ

 

問題9:シーケンス番号が与えられると、アルゴリズムを書くN、最小及び最大数の配列を返します。

 

問題10:あなたはアルゴリズムを設計することができ、唯一の1.5Nの最大値と最小数はそれを見つけることができるようになります配列比較を実行する必要がありますか?少しはできますか?

ヒント:2つの配列で「大きな」および「小さな」に敏感なペアごとの比較、ケースによって。だから「ビッグ」のアレイの最大数、「小さな」アレイ内の最小数。

 

問題11:要素がnに1の異なる整数であり、n-1の整数、からあなたにソートされていないシーケンスを与えます。時間アルゴリズム-整数の不足している線状配列を見つけるために書いてください。

ヒント:累積和

 

:図12は、問題となって最終的SRCに従って、限りSRCトークン文字がいずれかであるように、それが分割されている文字の長い文字列、そこトークンセパレータ複数の、SRC想定される空隙strton(CONSTチャー* SRC、CONSTのchar *トークン)いくつかの単語にトークン。O(n)のアルゴリズムを探しますか?

ヒント:ルックアップテーブル法、文字列のすべての長さ128のアレイに記憶され、そして1、文字区切り文字は、n回の走査によって、デリミタであるように、これは一定の時間位置により決定することができる、SRCれます単語に分割します。

 

:問題13の長さのソートされた配列のA、N、今アレイA位置M(M <N、M個の未知の)から分離され、2つの部分が反転され、新しいアレイをB、時間複雑度見られるように示されると仮定するとBの配列が存在する場合、所与の数xを見つけるO(LGN)アルゴリズムの程度?

ヒント:また、バイナリ検索を使用しています。核となるアイデアは、数はあなたが探している範囲を決定することです。次の範囲を見つけるために、数(頭部、尾部、中央)、および番号の検索との関係を比較することにより、3を決定することができます。

 

:問題14の長さのソートされた配列のA、N、今アレイA位置M(M <N、Mが知られている)から分離され、2つの部分が反転され、Oを設計(N)アルゴリズムこの反転は一つだけ余分なスペースを可能にします。(サイクリックシフトは、効率的ではありません)

提示:(A’B’)’ =BA

 

問題15:よりよい実現のベクトルを与えられました。(ベクトルSTLメモリの乗算が、各要素の平均値を保存コピーする各乗算器要素は効率的ではなく、一度にコピーする必要があります)

ヒント:2 ^ nは各分配の最小単位、及び各ブロックのシーケンシャル記録ヘッドアドレスとして固定長。この構造はまた、線形検索で実装することができ、かつコストのコピーが(ポインタのみ)が低いです

 

問題16:長さのそれぞれソートされた配列のA、B、所与のN、M、k番目の行の位置番号を見つけるために時間複雑(LGN)アルゴリズムを見つけて下さい。

ヒント:バイナリ検索。

 

問題17:長さのいずれかをそれぞれ配列A、B、N、Mが与えられると、k番目の行の位置番号を見つけるために時間複雑(LGN)アルゴリズムを見つけて下さい。

ヒント:完了したら、レコードヒープkの数を最小化することにより、常に、スキャンを更新しました。

これは、最適なアルゴリズムを見つけ、質問を求めています!

 

問題18:配列Aの各要素は、nがあると仮定し、要素は、それを繰り返し配列要素が存在するか否かを判定し、範囲1〜であるN?必要な複雑さはO(n)があります。

方法1:n個の記録素子のアレイを使用しては、二回1,1現れるの存在と呼ばれる、すなわち繰り返します。

要素の数N / M、2N / M ... .. A:方法2:Mのアレイ、各レコードのサイズを使用。バケツ方法

方法3:累積合計。一つだけの要素は、反復的なアプローチを見つけるために使用することができます。

 

問題19:サイズのソートされた配列Aの、与えられたN、今数Xが与えられ、2つの数AおよびXの和に等しいがあるか否かを判断します O(n)のアルゴリズムを与えます。

ヒント:側面への途中から見てください。使用の条件と秩序

 

問題の20は:サイズの、ソートされた配列Aを与えられたn個、重複要素を削除するにはO(n)のアルゴリズムをお願いし、余分なスペースを使用することはできません。

そこに繰り返されているので、プロンプト、冗長スペースがなければなりません。配列に前部要素、そしてあなたが後方にスキャンし続けることができ、次のレコードの位置を配置することができます。

 

問題21:二つは、それぞれ、配列A、Bを、ソートサイズN、Mを考えます。これは、Bが配列中に存在する元素Aを見つけるための効率的なアルゴリズムを与えます。

注:バイナリ検索が一般に大きなアレイにおいて、対象となる小素子のアレイが探しするために行われます。

より好ましくは、アルゴリズム(レグルスブレード提供):ABを横断する使用二つのポインタ、時間複雑さの現在のサイズを比較... O(N + M)

 

問題22: Q:ワインの千バレル、毒性のの1バレルがあります。食べた後、毒性は1週間後に攻撃します。今、私たちはその週1で毒ワインの樽を見つけるために、実験にマウスを使用して、マウスの最小数は尋ねたが必要です。

回答:10。マウス76酒17号1を供給し、第16号:1000に1から番号ワインは、それぞれ、マウスは、ワインの数に等しい数のマウスとのような添加されたとき1,248,163,264,128,256,512供給ワインの番号が付けられました液供給され第4号、第8号及び米国特許第マウスは、電力が2 10 1024 10に等しいので、1024マウスはワイン樽の最大測定することができるように数字が毒性であるワイン樽の数を加算死亡し7日後に64匹のマウス

サーティファイは次の通り:01、10、100 1000、...、10億:バイナリ表現を使用して。1024未満の任意の数のために、唯一表現するバイナリ数字の組の前に使用することができます。それは、設立されました。

 

問題23:そう1,000計量可能なバランスの重量こと、重みのセットの最小数を設計します。

重量は唯一の一方的置かれている場合は、1,2、4、512最高。(一つだけプラス)

重量二国間を置くことを許可された場合は、1、3、9、27 ...最高。次の数を計算する方法、(増加または減少させることができる)1,3-知ら。今すぐ計量-1,2,3,4を。Xの数を設定し、X-4、​​X-3、X-2、X-1、X、X + 1、X + 2、X + 3、X + 4として計量することができます。最高重量のために、重複してはならない重量(廃棄物)と呼ばれます。したがって、X = 9。同様に、バックを得ることができます。

 

グラフアルゴリズムの問​​題

問題24:ポイントが多角形内にあるかどう伝えるためにどのように?

ヒント:ポリゴンを分割し、三角形になる三角形内にある、点が決定されます。

 

結論A非常に有用な分析幾何:P2(X1、Y1)は、P2(X2、Y2)、P3(X3、Y3)は平面内に三点である場合には、三角形の面積は、三分の二以下絶対P1P2P3に等しいですA:

| ×1 Y1 1 |

| X2 Y2の1 | = X1y2 + x3y1 + X2Y3 -x3y2 - x2y1 - x1y3

| X3のY3 1 |

       点P3は、右側の直線P1P2(有向直線P1-> P2)である場合にのみ場合、式の符号は正です。この式は、チェックポイントは、二つの直線のどちら側決定される一定時間点の間の直線距離とすることができる(面積=ボトム高* / 2)。

 

       この結論は:点が三角形の内側の点であるかどうかを決定するために使用すること。方法1:ポイントと3つの三角形のストロークの三角形の辺の領域を分析し、三角形の元の面積に等しいです。(上記式で三回)。

方法2:特にない三角形内に、三辺が成立する同一の同じ側にあるか否かを決定します。

 

問題25: Nベクトルと0:00の角度二の角度二等分線与えられます。

ヒント:正規化双方は、2:01の長さを取得するために、次の2つの中間点を取ることができます。

 

おすすめ

転載: www.cnblogs.com/timssd/p/12578710.html