タグ付けされた質問 「data-structures」

データ構造は、データの特定のプロパティを効率的に照会および/または更新できるようにデータを編成する方法です。


13
100万の数字の文字列が与えられた場合、繰り返されるすべての3桁の数字を返します
数か月前にニューヨークのヘッジファンド会社にインタビューをしましたが、残念ながら、データ/ソフトウェアエンジニアとしてのインターンシップのオファーはありませんでした。(彼らはまた、ソリューションをPythonにすることを求めました。) 私は最初のインタビューの問題でかなり失敗しました... 質問:100万の数字(Piなど)の文字列が与えられた場合、3桁の数字の繰り返しと1より大きい繰り返しの数をすべて返す関数/プログラムを作成します。 たとえば、文字列が:の123412345123456場合、関数/プログラムは次を返します。 123 - 3 times 234 - 3 times 345 - 2 times 私がインタビューに失敗した後、彼らは私に解決策を与えませんでしたが、考えられるすべての結果が次の間にあるため、解決策の時間の複雑さは1000で一定であると教えてくれました: 000-> 999 私はそれについて考えているので、一定の時間のアルゴリズムを思いつくことは可能ではないと思います。それは...ですか?

5
3つのスタックでキューを実装する方法は?
私はアルゴリズムの本(Robert SedgewickとKevin WayneによるAlgorithms、4th Edition)でこの質問に出くわしました。 3つのスタックを持つキュー。3つのスタックを持つキューを実装して、各キュー操作が一定(最悪の場合)のスタック操作をとるようにします。警告:難易度が高い。 2つのスタックでキューを作成する方法を知っていますが、3つのスタックで解決策を見つけることができません。何か案が ? (ああ、これは宿題ではありません:))

6
Javaでリンクリストデータ構造を作成するにはどうすればよいですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 Javaでリンクリストを作成する最良の方法は何ですか?

8
ハッシュテーブルとトライ(プレフィックスツリー)のどちらを選択するのですか?
したがって、ハッシュテーブルとプレフィックスツリーのどちらかを選択する必要がある場合、どちらを選択するかを決定する要因は何ですか。私自身の素朴な観点から、それは配列として保存されていないのでトライを使用するといくつかの余分なオーバーヘッドがあるように見えますが、実行時間の観点から(最長のキーが最長の英語の単語であると仮定)、それは本質的にOである可能性があります(1)(上限に関して)。多分最長の英語の単語は50文字ですか? ハッシュテーブルは、インデックスを取得するとすぐに参照されます。ただし、インデックスを取得するためにキーをハッシュすると、簡単に50ステップ近くかかる可能性があります。 誰かがこれについてより経験豊富な視点を教えてくれますか?ありがとう!


9
コピーオンライトとは何ですか?
コピーオンライトとは何か、それが何に使用されるのか知りたいのですが。「コピーオンライト配列」という用語は、Sun JDKチュートリアルで何度か言及されていますが、それが何を意味するのか理解できませんでした。

10
Cで辞書を実装する簡単な方法
Cでプログラムを書いているときに私が見落としているものの1つは、辞書データ構造です。Cで実装する最も便利な方法は何ですか?私はパフォーマンスを求めていませんが、ゼロからコーディングするのは簡単です。汎用的なものにもしたくありません-string-> intのようなもので十分です。ただし、任意の数のアイテムを格納できるようにしたいのですが。 これは演習として意図されています。使用できるサードパーティのライブラリがあることは知っています。しかし、少しの間、それらが存在しないことを考慮してください。このような状況で、上記の要件を満たす辞書を実装する最も速い方法は何ですか。

6
HashMap get / putの複雑さ
HashMap get/put操作はO(1)であると言うことに慣れています。ただし、ハッシュの実装によって異なります。デフォルトのオブジェクトハッシュは、実際にはJVMヒープの内部アドレスです。get/putO(1)であると主張するだけで十分でしょうか? 利用可能なメモリは別の問題です。javadocsからわかるHashMap load factorように、0.75 である必要があります。JVMに十分なメモリがなくload factor、制限を超えた場合はどうなりますか? したがって、O(1)は保証されていないようです。それは意味がありますか、それとも何か不足していますか?

4
ロードされたサイコロのデータ構造?
私がnサイドのロードされたサイコロを持っているとします。サイコロを振ったときに、各サイドkがp kになる確率があります。サイコロのランダムなロールを効率的にシミュレートできるように、この情報を静的に(つまり、確率の固定セットに対して)保存するための優れたアルゴリズムがあるかどうか知りたいです。 現在、私はこの問題のO(lg n)ソリューションを持っています。すべてのkの最初のk側の累積確率のテーブルを保存し、[0、1)の範囲でランダムな実数を生成し、テーブルに対してバイナリ検索を実行して、累積的な値は選択した値以下です。私はこのソリューションが好きですが、ランタイムが確率を考慮に入れていないのは奇妙に思えます。特に、片側が常に表示される、または値が均一に分布する極値の場合、素朴なアプローチを使用してO(1)のロールの結果を生成することが可能ですが、私の解決策はまだ多くのステップをとっています。 この問題をランタイムで何らかの形で「適応」させる方法でこの問題を解決する方法についての提案はありますか? 編集:この質問への回答に基づいて、私はこの問題への多くのアプローチとその分析を説明する記事を書きました。エイリアスメソッドのVoseの実装は、サイコロごとにΘ(n)前処理時間とO(1)時間を与えるように見えます。これは本当に印象的です。うまくいけば、これは回答に含まれる情報への便利な追加です!

4
golangなぜデータ構造が設定されていないのか[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 この質問を改善する 私はセットを持っていることを必要とする「囲碁プログラミング言語」演習#1.4を解決しようとしています。セットタイプを作成できますが、言語にセットタイプが付属していないのはなぜですか?行く、グアバも生まれたグーグルから来たのに、なぜ言語デザイナーは基本的なデータ構造のサポートを追加することを選ばなかったのですか?なぜユーザーにセットとして非常に基本的な独自の実装を作成させるのですか?
129 data-structures  go  set 

9
Linqのリストから複数のフィールドを選択
ASP.NET C#には構造体があります。 public struct Data { public int item1; public int item2; public int category_id; public string category_name; } そして私はそれらのリストを持っています。category_idand を選択してcategory_name実行しDISTINCT、最後にORDERBYonにしcategory_nameます。 これが私が今持っているものです: List<Data> listObject = getData(); string[] catNames = listObject .Select(i=> i.category_name) .Distinct() .OrderByDescending(s => s) .ToArray(); これは明らかにカテゴリ名を取得するだけです。私の質問は、どのようにして複数のフィールドを取得し、どのデータ構造をこれに保存するのstring[]ですか? 編集 構造体のリストを使用することは難しいことではありません。選択を簡単にするためにバッキングデータ構造を変更することが望ましい場合(これらの多くを記述します)、喜んで推奨事項を採用します。
128 c#  linq  data-structures 

19
LINQでコレクションを「n」個の部分に分割しますか?
nLINQでコレクションをパーツに分割する良い方法はありますか?もちろん、必ずしも均等ではありません。 つまり、コレクションをサブコレクションに分割します。サブコレクションにはそれぞれ要素のサブセットが含まれており、最後のコレクションを不規則にすることができます。
122 c#  .net  linq  data-structures 

2
データ構造が「侵入的」であるとはどういう意味ですか?
リストやスタックなどのデータ構造を説明するために侵入型という用語を使用したことがありますが、それはどういう意味ですか? 侵入型データ構造のコード例を教えてください。侵入型データ構造との違いはありますか? また、なぜそれを邪魔にならない(または邪魔にならない)のですか?メリットは何ですか?欠点は何ですか?

30
getMinimum()がO(1)になるようにスタックを設計する
これはインタビューの質問の1つです。getMinimum()関数がスタック内の最小要素を返すように、整数値を保持するスタックを設計する必要があります。 例:以下の例を検討してください ケース#1 5->トップ 1 4 6 2 getMinimum()が呼び出されると、最小要素である1を返す必要があります スタック。 ケース#2 stack.pop() stack.pop() 注:5と1の両方がスタックからポップされます。この後、スタック のように見えます 4->トップ 6 2 getMinimum()が呼び出されたときは、2を返す必要があります。これは、 スタック。 Constriants: getMinimumはO(1)の最小値を返す必要があります スペースの制約も設計時に考慮する必要があり、余分なスペースを使用する場合は一定のスペースにする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.