コードの課題に備えて準備する[非公開]


15

ほんの数日前にCodilityを発見し、彼らの挑戦を試みました。そして言わなければならない。私は大皿で私の後ろに手渡されました。何が問題なのかはわかりませんが、傷をなめ、解決策が出て自分のものと比較されるのを待ちます。それまでの間、私は次のチャレンジに備えたいので、以前のブログ投稿を読んで、以前の問題を解決する方法を見ています。聞いたことのない新しいことがたくさんあります(デカルトツリー、さまざまな並べ替えアルゴリズムなど)。

そのため、このような課題(特にO(x)の時間と空間の複雑さ)にどのように準備しますか。そのようなタスクを準備するために何を読むべきですか?


私は最近、部分的に私の頭脳をゆがめさせる(これ強制する)ために、解決策を考え出す際により機敏になるのを助けるために、部分的にhaskellを研究してきました。そうは言っても、同じ目的でアルゴリズム設計マニュアル(無料のオンラインpdfが存在します)とKnuthによるThe Art of Computer Programming Vol 1 Fundamental Algorithmsのガレージセールコピーも読んでいます(これも深刻な脳痛の原因です)。 。
ジミー・ホッファ

回答:


3

このような課題(特にO(x)の時間と空間の複雑さ)にどのように準備しますか。そのようなタスクを準備するために何を読むべきですか?

もちろん準備することによって!それは練習の問題であり、あなたが不足していると感じた分野についてスピードアップすることです。神様、情報不足がインターネット上にあり、Googleがあなたの友達になったらカバーするのに非常に良いリソースです。

参考文献については、プログラマーの挑戦の質問があるいくつかのウェブサイトにアドバイスをします。その質問タイプから、あなたの欠点を判断し、それらのために勉強することができます。

調べるリソース:


7

そのような種類のテストに備えるためにできることは、練習だけです。たくさん練習してください。トップコーダー、codegolf、ギーク向けのギーク、Programming Praxies、CodeKata、Project Eulerなど、コーダーのヘルプには多くの優れたリソースがあります。

データ構造に問題がある場合は、アルゴリズムとデータ構造の概念をブラッシュアップすることをお勧めします。そのための最良の場所はウィキペディアですが、nptel、courseraなどのアルゴデータコースも検索できます。


私は本のようなリソースをもっと探していましたが、あなたのリンクのいくつかは新しくて有益でした。
ダニエルファス

1
@DanielFath:それについて読むことは役立ちますが、問題解決はあなたがそれを上手になりたいなら実践されなければならない芸術です。ソフトウェアを書く世界では、繰り返し発生する驚くほど多くの問題があります。以前にそれらを解決した経験により、新しいバリエーションを見つけてすぐに良い解決策を適用することができます。
-Blrfl

私は練習に多くの部分で同意し ます。問題を解決するために、より具体的なリソースへの欲求を表明しているだけです。私は答えを賛成しました(私はそれらすべてを支持しました)。
ダニエルファス

4

Googleの採用に関する半公式ブログ投稿では、この本を推奨しています:The Algorithm Design Manual

一般的なアルゴリズムとデータ構造に十分に精通していれば、非常に包括的で適切に記述されており、「クイックリファレンス」の部分が状況に大きく役立ちます。

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