アルゴリズムコア

Algorithms Core


Easy ~ Medium

通常価格:

各レクチャー(章)

1万円

    合計10レクチャー


お支払いは
Stripe
によって保護されています

レクチャー特色

テーマ別合計10~15時間のビデオレクチャー

頻出テーマの重要ポイント
問題を解くための必須テクニック
代表的な例題の解説
バグゼロに繋がるコードの書き方、サンプルコード

対象:
アルゴリズム初心者〜中級
効率的にコーディング面接の準備をしたい

シラバス

最新リリース、第五章 動的計画法(Dynamic Programming)

レクチャー1 努力の成果を最大化する、ゴールと戦略
1時間20分

ゴールを知る
 採用・面接の流れ、採点基準、レベルによって期待値の違い
 最適解の他に大事なポイント(良いコードクォリティとは、バグフリー、スピード)
 例題で本番シミュレーション
戦略を立てる
 ロードマップ、テーマ別勉強のコスパ、やらなくても良い範囲
 会社別傾向
 効率最大化の勉強法、面接で使う英語と短時間で上達する方法
役にたつウェブサイト
 levels.fyi、Glassdoor、Leetcodeを最大限活用する術

などコーディング面接に必要なすべての情報・戦略!

レクチャー2 計算量Big Oとデータ構造1
2時間20分
時間的計算量と空間的計算量
メモリーと変数
ADT(抽象的データタイプ)の区別
配列と連結リスト
メモリー内でどうなっている?
ハッシュテーブル
 ハッシュテーブルの原理
 ハッシュ関数とは
 ハッシュ衝突をどう解決するのか
スタック・キューの原理
実践例題 8問 解説・ライブコーディング
Leetcode 21 Merge 2 Sorted Lists (二つのリストをマージする)
Leetcode 206 Reverse Linked List (リストを反転する)
Leetcode 141 Linked List Cycle (リストでサイクルを検出する)
Leetcode 1 Two Sum        (二つの数の和)
Leetcode 20 Valid Parentheses (括弧の有効性、スタック)
Leetcode 49 Group Anagrams (アナグラムをグループ化する)
Leetcode 155 Min Stack  (最小値を返すスタックのデザイン)
Leetcode 146 LRU Cache  (LRUキャッシュのデザイン)
さらに、関連良問 6問 模範コード&ヒント付き!
レクチャー3 頻出:二つのポインタを一気にマスターする!
2時間14分
実践例題 9問 解説・ライブコーディング
二つのポインタの基本的な考え
2 Sum系
Leetcode 167 Two Sum II - Input Array Is Sorted (二つの数の和 配列がソートされている場合)
Leetcode 15 3Sum(三つの数の和)
Leetcode 16 3Sum Closest(もっとも近い三つの数の和)
Leetcode 18 4Sum (四つの数の和、k個の数の和)
パーテション系
Leetcode 283 Move Zeroes (ゼロを移動する)
Leetcode 283 Sort Colors (色を分ける、オランダ国旗色問題)
スライディングウィンドウ系
Leetcode 3 Longest Substring Without Repeating Characters (最長な重複文字なしの部分文字列)
Leetcode 11 Container With Most Water (最も多く水が入る容器)
回文系
Leetcode 5 Longest Palindromic Substring (最長回文部分文字列)
さらに、関連良問 5 問 模範コード&ヒント付き!
レクチャー4 木構造と再帰
2時間25分
木構造の基本(用語、Traversal)
再帰
 コールスタック
 再帰の掟
分割統治法/深さ優先探索
Leetcode 104 Maximum Depth of Binary Tree 二分木の最大の高さ
Leetcode 543 Diameter of Binary Tree 二分木の直径
Leetcode 110 Balanced Binary Tree 平衡二分木
Leetcode 236 Lowest Common Ancestor of a Binary Tree 二分木の最小祖先
Leetcode 105 Construct Binary Tree from Inorder and Preorder - InorderとPreorderから二分木を構築する
Leetcode 215 Kth Largest Element in an Array — quick select - K番目に大きい要素
バックトラッキング
Leetcode 39 Combination Sum
Leetcode 46 Permutations
Leetcode 78 Subsets

レクチャー5 動的計画法(Dynamic Programming)

3時間31分
DPの4要素〜4つのステップで全ての動的計画法が解ける!〜
DPはどんな問題に適するか?
状態をうまく見つける秘訣
初期化をうまくする秘訣
デバッグの仕方
超重要、高コスパ問題の詳細解説・ライブコーディング
1次元線形DP
Leetcode 70 Climbing Stairs 階段を登る
LeetCode 198 House Robber 家を盗む
LeetCode 213 House Robber II 家を盗む II
マッチングDP
LeetCode 72 Edit Distance 編集距離
LeetCode 1143 Longest Common Subsequence 最長共通部分列
LeetCode 300 Longest Increasing Subsequence 最長単調増加部分列
ナップサック系DP
0-1 Knapsack Problem(会津オンラインジャッジ) 0/1ナップサック問題
LeetCode 494 Target Sum 目標和
Knapsack Problem(会津オンラインジャッジ) 完全ナップサック問題
LeetCode 139 Word Break 単語を分割する
LeetCode 322 Coin Change コインのお釣り
LeetCode 528 Coin Change II コインのお釣り II
レクチャー6 二分探索
基本:整列された配列での二分探索
無限ループにならないための書き方
二分探索の計算量の導き方
答えで二分探索する
例題:koko eats banana
レクチャー7 再帰
再帰とコールスタック
再帰関数を書くための3つの掟
レクチャー8 幅優先探索 BFS
幅優先探索の基本
queueを使った幅優先探索の実装
レクチャー9 木構造・分割統治法
分割統治法はどういう問題に適するか
グローバル変数を避けるには
分割統治法の書き方
例題:Same Tree
レクチャー10 深さ優先探索DFS・バックトラッキング
BFS vs DFS
DFSとメモ化
バックトラッキングはどういう問題に使うのか
例題:N queens