タグ

アルゴリズムに関するwyukawaのブックマーク (5)

  • 半年間で LeetCode の問題を300問解いてみて(※) - Studio3104::BLOG.new

    とは言ってみたものの実際にはちょうど1年前くらいからやってました。始めてからすぐ Premium 買ってたので。 うおお、LeetCode の Premium が Expire していた、、— Satoshi SUZUKI (@studio3104) December 11, 2020 ではなんで「半年間で」なのかというと、今年の前半は英語の勉強をがっつりやってたので英語仕事以外のことは何もしてなかったから。 そして300問はまだいってないんだけど、英語漬けから空けた6月アタマから数えて半年経過の今月末には300問いくだろうという見込みがあるということでタイトルはこのようにした。 1年間で LeetCode の問題を290問解いてみて ということで改めて。@sugyan と @fushiroyama *1 に影響されて始めたんだが、続ければ続くものですね。 自分は "コードの書けないイン

    半年間で LeetCode の問題を300問解いてみて(※) - Studio3104::BLOG.new
    wyukawa
    wyukawa 2020/12/16
    僕がnetflix見ている間にスタジオさんが遠い存在になっていた。
  • アルゴリズムと数学的思考力 - 怠惰を求めて勤勉に行き着く

    厳しい。年始早々厳しさを感じている。自分のプログラミング力にだ。伸び悩んでいる。 端的に言って、数学力のなさが自分のプログラミング能力に制限をかけている。例えばこの問題。 560. Subarray Sum Equals K 入力として与えられる配列 nums のうち、合計が k となる部分配列の個数を数え上げよ。どうも有名な問題らしいが… まず大前提として、部分配列なので i, j の2重ループで始点・終点を定めて sum(nums[i, j]) = k になるものを数え上げれば必ず答えが得られる。最悪計算量は O(N^3) ただし i < nums.length < 20000 という制約があるので N^3 では遅すぎるから何か考えてくださいというのがスタート地点。 ここで、結果の変わらない累積和を何度も求めているので nums[i, j] = k を求めたい場合、 nums[0, j

    アルゴリズムと数学的思考力 - 怠惰を求めて勤勉に行き着く
    wyukawa
    wyukawa 2020/01/02
    個人的にはこれは数学力でも算数力でもないと思っててあえて言うならアルゴリズム力なのかなと。
  • 分散プログラミングモデルおよびデザインパターンの考察 その3 - Software Transactional Memo

    昨日に引き続いて分散システムのデザインパターンについて書いていきたい。 だがそれ以前に故障モデルに関する前提を忘れてはならない。人によって様々な方針があるが、個人的には分散システムの世界において意識しなくてはならない故障モデルは4つだと考えている。僕は前回のブログに書いた Replication のをベースに書いており、少し言葉遣いや定義が他とやや違う点は許して欲しい。また、通信の脱落・遅延とはレイヤーが異なる議論である。 故障モデルの分類 故障が起きないモデル これは故障が起きない世界を仮定するモデルである。これ自体はプロダクションにそのまま投入できるものではない。だがこの故障モデルを想定しても解けない問題は故障が発生する状況では絶対解けない事が断言できたり、合意プロトコルが正しいかを議論する土台となったり、様々な実用的なアルゴリズムや分散システムの土台となるアルゴリズムが生まれる土壌

    分散プログラミングモデルおよびデザインパターンの考察 その3 - Software Transactional Memo
  • Workflow Engine をつくろう! Part 1(Task の依存関係の解決) - Qiita

    Part 1 Task の依存関係の解決 Part 2 Workflow の冪等性 Part 3 Task 間でのデータのやり取り Part 4 Task の並列実行 Workflow Engine って何? Workflow Engine と言っても多機能なものから、シンプルなものまで様々なものがあります。そこで、主旨がぶれないように、この記事での Workflow Engine は、以下の要件を満たすソフトウェアとします。 Workflow Engine とは、依存関係のある複数の Task を、意図した順番通りに実行するもの この記事では、この要件を満たす Workflow Engine を Ruby でつくる方法について解説します。 依存関係を記述する 依存関係を解決するコードを書く前に、依存関係を記述する方法をまず決めましょう。 依存関係を記述するには、luigi のように Ta

    Workflow Engine をつくろう! Part 1(Task の依存関係の解決) - Qiita
  • 入門 データ構造とアルゴリズム

    インド工科大学(IIT)と企業の両方で豊富な経験を持つインド人著者による、実例豊富なデータ構造とアルゴリズムの解説書。伝統的なデータ構造とアルゴリズムのトピックで、基をしっかり押さえるだけでなく、集合のUnion/Find、動的プログラミングや計算量クラスといった話題も盛り込んでいます。圧倒的な情報量でプログラマに必要な知識を網羅。600弱の練習問題とその解を収録しており、理解度を細かく確認し、知識を着実に身に付けることができます。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。 第1刷正誤表

    入門 データ構造とアルゴリズム
  • 1