アナログ加算器のチェーンによってLeetCode 2追加つNumbers--

今日の話は難しいが、非常に興味深いしていないが、我々は一緒にトピックを見て、古典アルゴリズムの問​​題です:
 
次の2つの非負の整数を表す2つの非空のリンクリストを与えています。数字は逆の順序で保存され、それらのノードの各々は、単一の数字を含みます。2つの数値を追加し、リンクリストとしてそれを返します。次の2つの数字が数0自体を除き、任意の先行ゼロを含まない仮定することができます。
 
翻訳
 
二つの非空のリストを考えると、2非負整数の代表。どちらの整数がフラッシュバックに格納されている、彼はこれらの2つの整数を示すリストを返すように要求されました。
 
サンプル
 
入力:(2 - > 4 - > 3)+(5 - > 6 - > 4)出力:7 - > 0 - > 8説明:342 + 465 = 807。
 
答え
 
理解しにくいトピック、アイデアが実際には、学生は二つの整数の合計を計算するためにシミュレートし、垂直加算と減算の計算方法を果たし、また理解したいのは非常に簡単です。それは加算器であるので、キャリーは、例えば2桁のために、含むことができると3桁の数であってもよいです。もう一つの問題はさらに大きくなり複雑性をコーディング、リンクリストを含む、達成するために、リストを使用する必要があります。
 
あなたがコーディングを始める前に、のはよく見るの例を見てみましょう:
あなたはC ++ STLや他の言語ツールライブラリの使用に精通している場合は、おそらくそれはあなたがマップを使用することができると思うのは簡単でなければなりません。マップは、キーと値のペアの格納データ形式に使用される非常に一般的なコンテナです。
 
私たちは、デジタルと従来の順に格納されたリストの逆順に起因する、それを発見した、キャリーケースがある場合ので、我々は唯一のノードを追加するには、リストの最後を必要とします。典型的には、リストは、左から右に理解される左に右から計算、実際には、トラバースリストの順序に従って計算されます。私はこの点を理解したい、と問題はありません。
 
私たちは、要約を行う、約3つの難しさがあります。
 
  • それは配列ではありませんので、私たちは、リストの長さを取得することはできません。長さの2つのリストがあります矛盾しています
  • 戻り結果は、リンクされたリストである、我々は手動で作成する必要があります
  • 生成されたキャリー計算処理
 
私たちは、リストの長さが不明がうまく処理され、我々はあなたがリストかどうかを知ることができ、後継者があり、現在のノードの次のノードが空であるかどうかを判断するだけで必要な、一つ一つを分析します。そうでない場合、それは終わりに近づいリストが横断されたことを意味します。
 
この質問の中で二つのリストがあるので、我々は、彼らが終了するかどうかを決定する必要があります。
 
 
手動でリストが複雑ではありません作成し、我々は最初のノードのリストを作成し、ノード間の後部に挿入しました。挿入リストなどcur変換することができ、非常に簡単な方法は、現在のノードがCURであると仮定すると、ノードを挿入するノードで、我々は唯一のcur.next点ノードを必要ともされ、そのノードに割り当てられています:
 

 

 

私たちは、計算ビット加算器によるものである前に、我々は変数で標識することができるので、キャリービットは、発生した場合、結果の問題を計算するキャリーは、さらに簡単です。、その後、現在の計算を加えたものがある場合。加算演算するので、結果は、そう唯一まで追加運ぶ、19の最大(プラス9上に2つの前方位置)に到達することができます。最後に、キャリー・ビット・コンピューティングの現在の結果であることができるかを決定。
 
 
最後に、私たちは一緒に来るの上に、あなたがコードを書くことができる3つのポイントを必要としています。コーディングや公共号の難しさがある場合TechFlowの返信LeetCode2を、コードを取得します。
それはほとんどの言語、int型に余地がある、まだ終わっていません。典型的には32ビットのint64は64ビットである場合。これは私がそれを行う必要がありますどのように表現することができる64進整数の上に、について考えていないこと、コンピュータのCPUと帯域幅が関係しているのですか?
其实就是用类似本题当中的方法,通过链表将每一位串联起来,在计算加减乘除的时候,则是像人工打竖式那样去计算。这种算法称为高精度。感兴趣的同学,可以自行搜索,以后有机会,会在之后的文章里更新。
 
如果喜欢本文,请顺手扫码给个关注吧:
 

おすすめ

転載: www.cnblogs.com/techflow/p/12119088.html