DSA.dataStructure.algorithm 數(shù)據(jù)結(jié)構(gòu)與算法

  • 思路: 枚舉/暴力(規(guī)范/協(xié)議)->子問(wèn)題/狀態(tài)壓縮/剪枝->最優(yōu)解
    • 多畫(huà)圖
  • 方法
    • dimension.維度 scope.范圍 classify.分類 field.domain.領(lǐng)域 boundary.邊界 interval.區(qū)間: 左閉(0/1開(kāi)始)右開(kāi)? 邊界=Layer層=規(guī)范=協(xié)議=O(mn) > O(m+n) 環(huán)/假溢出? 連續(xù)?
    • 協(xié)=2+參與者 議=行為約定與規(guī)范
    • 中間層 -> 問(wèn)題復(fù)雜度 M*N \rightarrow M+N -> 社會(huì)分工越來(lái)越細(xì), 各行各業(yè)制定標(biāo)準(zhǔn)
    • 有序.sort
      • 二分法: 快/慢 左/右 order.正/逆/倒序 前/后; 二分->四分
    • 遞歸=base+recursive=棧 優(yōu)化=循環(huán)/尾遞歸
  • pl
    • py: array bisect collections sortedcontainers(Map TreeMap)
    • java: HashMap HashSet
  • name.命名.參數(shù): ans/res ij kv pqr mn-len-Node Tmp Flag-Fn-Func Left-Right Start-End First-Last Fast-Slow small-big high-mid-low Row-Cloumn-Box visited
  • ADT.abstractDataType DFA.DeterministicFiniteAutomaton.有限自動(dòng)機(jī) 面試編程.PREP.parametersReturnExamplePseudocode.IO.TDD

DS

  • 存儲(chǔ)=鏈?zhǔn)?順序 邏輯=線性(arr/link/stack)+非線性(tree/graph) op=CRUD.Retrieve.查 traversal.遍歷=iteration.迭代+recursion.遞歸 RandomAccess.隨機(jī)訪問(wèn) SequentialAccess.順序訪問(wèn)
  • arr.array.數(shù)組.線性表 vec.vector.向量.順序線性表 slice.切片 list.列表 prefixSum.前綴和.連續(xù)問(wèn)題
    • 空間壓縮 環(huán)形數(shù)組.取模
    • mat.matrix.二維.棋盤(pán)狀態(tài) symmetricMatrix.對(duì)稱矩陣 sparseMatrix.稀疏矩陣 三維.魔方類游戲
  • stack.棧 LIFO pop.push DFS
    • op: polishNotation.波蘭表達(dá)式.前綴.中綴.后綴 括號(hào)匹配.棧匹配 棧實(shí)現(xiàn)隊(duì)列
    • monotoneStack.單調(diào)棧: 下一個(gè)大于/小于 邊界-哨兵法; 廣義棧
  • queue.隊(duì)列 FIFO.FistInFirstOut front/back enqueue/dequeue BFS
    • monotonicQueue.單調(diào)隊(duì)列
    • deque.雙端隊(duì)列.pool
    • ring.環(huán).循環(huán).固定長(zhǎng)度緩沖區(qū)讀寫(xiě).io緩沖區(qū)
  • linkedList.鏈表
    • 畫(huà)圖 迭代操作(head+pre+cur+next) 固定頭結(jié)點(diǎn).表頭節(jié)點(diǎn).啞結(jié)點(diǎn)dummyNode.哨兵節(jié)點(diǎn)
    • op: reverse.反轉(zhuǎn) 中值 奇偶 快慢 相交.環(huán)
    • singleLinkedList.單鏈表 doubleLinkedList.雙向鏈表 LinearList.線性鏈表 staticList.靜態(tài)鏈表
  • hash.哈希.散列 hashTable dict.字典 map.映射 kv.keyValuePair.鍵值對(duì) symbolTable.符號(hào)表 assocArray.關(guān)聯(lián)數(shù)組
    • hashFunction.散列函數(shù) 解決碰撞.填充因子 conflict.沖突.抽屜原理 separateChain.鏈地址法.拉鏈法 開(kāi)放地址=linearProbing線性探查+線性補(bǔ)償探測(cè)+隨機(jī)探測(cè)
    • rehash 漸進(jìn)式rehash
    • consistentHash.一致性hash DHT.分布式hash
      • uint32環(huán) node(真實(shí)節(jié)點(diǎn))/replica(虛擬節(jié)點(diǎn)) 順時(shí)針查找第一個(gè)
      • judge: balance monotonous.單調(diào) spread load
    • MurmurHash: 規(guī)律輸入依然可以給出很好的隨機(jī)分布+計(jì)算速度
    • xxHash: https://xxhash.com
  • string.字符串匹配
    • KMP FSM.FiniteStateMachine.有限狀態(tài)機(jī) 模式匹配有限狀態(tài)機(jī) BM BM-KMP BF RK
    • approximate/fuzzy.模糊匹配 suffixArr.后綴數(shù)組
    • trie.字典樹(shù).前綴樹(shù) 動(dòng)態(tài)路由.查找.詞頻統(tǒng)計(jì) 路由=restful/fixed/regex/custom/auto/annotation+param.:id+method.GET+namespace.v1
      • radixTree.基數(shù)樹(shù)
  • tree 度.根.葉.兄弟.高度 無(wú)序.有序 二叉.多叉 大部分算法技巧本質(zhì)上都是樹(shù)的遍歷問(wèn)題
    • binaryTree.二叉樹(shù) 滿 complete.完全 Serialization.序列化
      • op: 遍歷(pre前.in中.after后 層次.bfs) create(前序+中序 樹(shù)狀數(shù)組) depth(min max) lca.leastCommonAncestors.最近公共祖先
      • BST.binarySearchTree.搜索.查找 -> binarySortTree.退化為鏈表的性能問(wèn)題 -> Balance.平衡/AVL/RBT.redBlackTree.紅黑樹(shù) -> 區(qū)間樹(shù).區(qū)間查詢.區(qū)間重疊判斷-> 線段樹(shù).葉子節(jié)點(diǎn)區(qū)間范圍之和.區(qū)間重疊判斷.統(tǒng)計(jì)學(xué)(大區(qū)間+小區(qū)間)
      • binaryIndexedTree.二叉索引樹(shù).樹(shù)狀數(shù)組 segmentTree.線段樹(shù).區(qū)間樹(shù) HuffmanTree.哈夫曼樹(shù) b+.數(shù)據(jù)庫(kù)索引
      • doubleChainedTree.雙鏈樹(shù)
    • 多叉: B.文件管理.數(shù)據(jù)庫(kù).多路+有序 B+.終端節(jié)點(diǎn)處理不同 2-3 2-3-4
    • Huffman_coding.霍夫曼編碼 merkleTree.哈希二叉樹(shù).區(qū)塊鏈
    • k-dTree(游戲中碰撞檢測(cè) 4維/8維) DOM/HTML/AST/XML
  • set hashSet treeSet DisjointSet
  • map hashMap treeMap
  • heap.堆
    • array實(shí)現(xiàn): 極大堆/極小堆/極大極小堆/優(yōu)先級(jí)隊(duì)列.priorityQueue.os線程調(diào)度 雙端堆.Deap d叉堆
    • tree實(shí)現(xiàn): binaryHeap.二叉堆 左堆 扁堆 二項(xiàng)式堆 fibHeap pairingHeap.配對(duì)堆
  • find.查找 unionFind.并查集
    • 路徑壓縮+秩優(yōu)化實(shí)現(xiàn) 每個(gè)集合元素個(gè)數(shù)+最大集合元素個(gè)數(shù)實(shí)現(xiàn) 并查集是一種思想 特殊節(jié)點(diǎn).地圖/磚塊/網(wǎng)格
    • hash binarySortTree.排序二叉樹(shù) AVL/B/B+/B*/AA/RBT/splay/DCT/R binaryHeap
    • skipList.跳表
  • graph.圖 graphTheory.圖論 seen-vis-visted
    • 權(quán) 向 入度出度 連通/強(qiáng)連通 DirectedGraph有向圖 DAG.DirectedAcyclicGraph.有向無(wú)環(huán)圖.任務(wù)編排
    • op: 遍歷(dfs bfs) create.鄰接表-稀疏.鄰接矩陣-矩陣運(yùn)算
    • algo: dijkstra.最短路徑.非負(fù)權(quán)邊 Bellman-Ford最短路徑.負(fù)權(quán)邊 Floyd 最小生成樹(shù)(Kruskal&Prim) 二分圖(染色法) 拓?fù)渑判?fordFulkerson最大流 A*搜索.A星尋路.啟發(fā)式搜索 圖匹配 網(wǎng)絡(luò)流
  • other: LFU LRU.LRU-K.LRU-2Q 分桶

algo

  • NP完全: bigO.時(shí)間/空間 所有組合 必須考慮所有情況 序列.旅行商問(wèn)題 集合.廣播臺(tái)集合

  • math.bit位操作

  • binarySearch.二分查找 思路很簡(jiǎn)單細(xì)節(jié)是魔鬼 閉區(qū)間+邊界檢查

    • 經(jīng)典解法.low<=high 4個(gè)變種.^= $= ^>= $<= 最大化最小化問(wèn)題
  • sort.排序

    • 類型: 交換(冒泡 快排.qsort.quickSort.pdqsort) 插入(直插 shell希爾) 選擇(簡(jiǎn)選 quickSelectSort.快選 堆) mergeSort.歸并(二路 多路) 基數(shù) 計(jì)數(shù)(計(jì)數(shù)信息=排序結(jié)果) 桶 線性 自省 間接
    • 外部: k路歸并敗者樹(shù) 最佳歸并樹(shù)
  • 暴力=枚舉=打表法 狀態(tài)/不重不漏/效率

    • 排列組合 子集 映射2^n
  • DC.分治

    • RC.ReduceConquer.減治.小問(wèn)題只解決一個(gè)大問(wèn)題就解決了: 二分查找 randomizedSelect.隨機(jī)選擇
  • DP.動(dòng)態(tài)規(guī)劃=狀態(tài)+狀態(tài)轉(zhuǎn)移方程+邊界情況

    • 暴力遞歸->帶memo遞歸->DP狀態(tài)->memo狀態(tài)壓縮->狀態(tài)間關(guān)系 memo.備忘錄->status.狀態(tài)壓縮 trim.剪枝 最優(yōu)解 子問(wèn)題離散&不依賴其他子問(wèn)題 網(wǎng)格
    • 最優(yōu)二叉搜索樹(shù)
      • Knapsack.背包 subKnapsack.子集背包 completeknapsack.完全背包 01knapsack
      • subsequence.子序列 LCS.LongestCommonSubsequence.最長(zhǎng)公共子序列
  • greedy.貪心.貪婪 每步最優(yōu)解>全局最優(yōu) scheduleProblem.調(diào)度問(wèn)題 jumpGame.跳躍游戲 gameProblem.博弈問(wèn)題

  • backtracking.回溯 迷宮

  • search.搜索

    • 枚舉.迷宮 DFS.deepFirstSearch.深度優(yōu)先 BFS.BreadthFirstSearch.seen 啟發(fā)式搜索
  • 分支定界法

  • 大數(shù)據(jù)

    • BF.bloomFilter.布隆過(guò)濾器: 概率型數(shù)據(jù)結(jié)構(gòu) 概率型算法 替代.Cuckoo/Hyperloglog
    • ai
  • security安全: bcrypt.目前最安全密碼散列 sha.局部不敏感=局部變化散列值完全不同 simhash.局部敏感.網(wǎng)頁(yè)是否搜集+論文是否抄襲+版權(quán)檢查

  • other

    • LB.LoadBalance: rand roundRobin.取余 weightRoundRobin p2c
    • limit: 滑動(dòng)窗口(頻率/并發(fā)上限) tokenBucket(令牌桶 瞬時(shí)流量)
    • timingWheel.時(shí)間輪: 延遲操作
    • 2point.雙指針: 快慢指針+左右指針
      • SlidingWindow.滑動(dòng)窗口: 連續(xù)問(wèn)題 快慢指針/固定間距指針
  • 精選題解: 字典序列刪除 前綴和 二叉樹(shù)序列化 最長(zhǎng)上升子序列 最長(zhǎng)公共子序列 最大子序列和 股票買(mǎi)賣(mài) 打家劫舍

  • topk: qsort全局排序.分治->冒泡.局部排序->heap->rc減治.rs隨機(jī)選擇.只排序k個(gè)元素的區(qū)

  • InvertedIndex倒排索引: 搜索引擎

  • epoll: readBlackTree+doubleList

bit Bit_numbering Category:Binary_arithmetic

  • 進(jìn)制 進(jìn)制轉(zhuǎn)換: bin oct hex(n&15 n>>=4 n%16 n//=16) 11 0b11 011 0x11
    • binary 二進(jìn)制; decimal 十進(jìn)制; hex 十六進(jìn)制; octal 8進(jìn)制
  • int
    • uint8 byte ascii: chr ord 'a'^' '='A' 'A'|' '='a' 'a'&'_'='A'
    • signed/unsigned 機(jī)器數(shù)&真值 trueForm.原碼 反碼=除符號(hào)位按位取反 Complement.補(bǔ)碼=反碼+1
    • str2int int2str
  • op &.and |.or ^.xor ~.not << >> 算術(shù)右移 邏輯右移.最高位補(bǔ)0 移位與除法 奇偶n&1 n>>1 %2 末位n&1
    • 冪等律a|a=a 交換律a|b=b|a 結(jié)合律a&b&c=a&(b&c) 分配律a&(b|c)=(a&b)|(a&c)
    • 德摩根~(a&b)=(~a)&(~b) 取反-a=~(a-1) 異或^ i^0=i i^i=0 4i^(4i+1)^(4i+2)^(4i+3)=0
    • lsb.最低有效位 消除n&(n-1) 只保留n&-n n&(~(n-1)) msb oneCnt
    • add divide hammingDistance
  • bitmap.位圖.bitset 32/64k,v:=n/64,n%64 str2biti|=1<<(v-'a')
  • dp.狀態(tài)壓縮: 只有2種狀態(tài)&n<=20
  • mask 右n位清零x&(~0<<n) n位bit(x>>n)&1 n位冪值x&(1>>(n-1)) n位設(shè)為1.n1x|(1<<n) n位設(shè)為0.n0x&(~(1<<n))

math

  • 進(jìn)制轉(zhuǎn)換 階乘 素?cái)?shù) 快速冪 楊輝三角 裴蜀定理 斜率 fib
  • 最大公約數(shù): 輾轉(zhuǎn)相除法=歐幾里得算法 更相減損術(shù)(九章算術(shù))-位運(yùn)算(奇偶)
  • 排列組合 C_{n+m-2}^{m-1}
  • 約瑟夫環(huán)dp[i]=(dp[i-1]+m)%i
  • 快速冪求余x^a \odot p=(x^2 \odot p)^{a/2} \odot p
  • 算術(shù)幾何不等式\dfrac{n_1+n_2+...+n_a}{a}>=\sqrt[a]{n_1n_2...n_a}
  • 公式推導(dǎo) f(n)=\dfrac{1}{n}x1.0+\dfrac{1}{n}x0.0+\dfrac{1}{n}\sum\limits_{i=2}^{n-1}f(n-i+1)
// 減法變加法
a + ^(b-1) // a-b

leetcode

  • leetcode lintcode acmcoder.賽碼 Hackerrank 牛客網(wǎng) codetop.企業(yè)題庫(kù) codewars vjudge geeksforgeeks oi-wiki.信息奧林匹克 the-algorithms javascript-algorithms
  • LeetCode題解src/go: // id https://leetcode.cn/problems/{title} 題解=tag+思路 題解.多語(yǔ)言代碼塊.java [] 專題/模板
    • 題解: 自己讀題 -> 15分鐘還沒(méi)思路 -> 看題解 -> 完全不會(huì)才看代碼/記筆記 -> coding/debug
    • lucifer.力扣加加.91algo.leetcode-solution
    • labuladong/fucking-algorithm 算法有套路.算法小抄
    • halfrost/LeetCode-go leetcode-cookbook 阿里霜神
    • LeetCodeAnimation LeetCode101.c++.谷歌師兄刷題筆記

leetbook

  • 位運(yùn)算與數(shù)學(xué)
  • 數(shù)據(jù)結(jié)構(gòu)
    • 數(shù)組和字符串 數(shù)組類算法
      • 基本概念+操作方式; 二維數(shù)組; 字符串 概念+特性; KMP算法; 雙指針
    • 鏈表
    • 哈希表 查找表類算法
    • 隊(duì)列和棧
    • 二叉樹(shù) 二叉搜索樹(shù) 前綴樹(shù) N叉樹(shù)
    • 圖解數(shù)據(jù)結(jié)構(gòu)
  • 算法
    • 初級(jí)算法 中級(jí)算法 高級(jí)算法
    • 遞歸 二分查找
  • AI數(shù)學(xué)基礎(chǔ)
  • 漫畫(huà)算法

leetcode tool

  • leetcode web
    • problemset題庫(kù)
      • 分類: 算法 劍指offer 程序員面試金典6 hot100 top200
      • 標(biāo)簽tag: 學(xué)了一個(gè)知識(shí)后, 按標(biāo)簽刷, 快速鞏固: bit-manipulation.位運(yùn)算
      • session.設(shè)置-進(jìn)度管理
    • circle社區(qū): 題解
    • code題目頁(yè)面: 模擬面試 快捷鍵(?' ???) 使用上一次的編輯 還原 playground調(diào)試 測(cè)試用例 可視化 收藏中心
  • leetcode app
    • 搖一搖切換中英文描述/隨機(jī)一題
    • 學(xué)習(xí)分析
  • help
    • plus: 付費(fèi)精選題目和內(nèi)容; 企業(yè)題庫(kù); 企業(yè)模擬面試(免費(fèi)可 隨機(jī)); 題目熱度; 極速判題; playground(調(diào)試)
      • 模擬面試: 1-3題, 30-90分鐘
    • 競(jìng)賽: 報(bào)名 -> AC +1分, 每次錯(cuò)誤 +5min 罰時(shí)
    • 個(gè)人主頁(yè): 做題進(jìn)度 收藏/筆記/積分 訂單 賬號(hào)
    • 技術(shù)問(wèn)題
      • 各語(yǔ)言對(duì)應(yīng)版本和環(huán)境: phpinfo() => 7.2
      • 全局變量和類內(nèi)靜態(tài)變量 -> 手動(dòng)初始化
      • stdout 打印: debug + 增加耗時(shí)
      • 二叉樹(shù)序列化
      • timeout.leetcode的鍋 TLE.TimeLimitExceeded.代碼的鍋
  • 力扣刷題插件.lucifer
    • 題解模板/查看題解
    • 代碼: 一鍵復(fù)制所有測(cè)試用例 禪定模式
    • 代碼模板: 前綴和(一維 二維) 二分法(baisc+4變種) BFS(是否帶層信息) 堆(最小堆) 滑動(dòng)窗口(固定窗口/可變窗口) 回溯(標(biāo)準(zhǔn) 笛卡爾積優(yōu)化) 前綴樹(shù) 并查集(是否帶權(quán)) 線段樹(shù)(區(qū)間和 計(jì)數(shù))
    • 數(shù)據(jù)結(jié)構(gòu)可視化
    • 復(fù)雜度速查
    • 學(xué)習(xí)路線: 動(dòng)態(tài)規(guī)劃 樹(shù) 鏈表 二分
  • 如何刷題
    • 題解: 自己讀題 -> 15分鐘還沒(méi)思路 -> 看題解 -> 完全不會(huì)才看代碼/記筆記 -> coding/debug
    • 按專題(tag)刷 -> 模板/筆記/多題同解
      • 構(gòu)建知識(shí)體系/框架/套路
    • 廣度優(yōu)先而非深度(死磕某一個(gè)知識(shí))
    • 掌握編程語(yǔ)言
    • 模擬面試: 時(shí)間觀念+一次AC
    • 訓(xùn)練目標(biāo): AC數(shù)量 AC速度 AC通過(guò)率 競(jìng)賽排名前100 beats-CPU/mem-100%
      • bug-free: 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)+算法形成肌肉記憶 單測(cè)+調(diào)試
    • code: 命名name(簡(jiǎn)潔&一致性) 小心全局變量 提交后查看排名->分段->看100%的代碼 直接使用系統(tǒng)api
    • debug: 批量測(cè)試 數(shù)據(jù)可視化
    • 鎖定使用哪種算法: 記憶/題感/暴力解(暴力+剪枝 大力出奇跡) 關(guān)鍵字 限制條件+復(fù)雜度速查 分治思維
  • 九章算法
    • 企業(yè)題庫(kù) 領(lǐng)扣lintcode題庫(kù)(Java c++ py)
    • 免費(fèi)課:ai 企業(yè)題庫(kù)/面試 算法
    • 發(fā)現(xiàn):求職面試 學(xué)習(xí)筆記 上班摸魚(yú)
    • 消息
    • 我:發(fā)布 收藏 學(xué)分 學(xué)習(xí)記錄

leetcode.tag

  • Fundamentals 基本
    • Array 數(shù)組
    • Matrix 矩陣
    • String 字符串
    • StringMatching 字符串匹配
    • Sorting 排序
    • BucketSort 桶排序
    • CountingSort 計(jì)數(shù)排序
    • RadixSort 基數(shù)排序
    • Simulation 模擬
    • Enumeration 枚舉
  • Algorithms 算法
    • DynamicProgramming 動(dòng)態(tài)規(guī)劃
    • Depth-FirstSearch 深度優(yōu)先搜索
    • Breadth-FirstSearch 廣度優(yōu)先搜索
    • Greedy 貪心
    • BinarySearch 二分查找
    • Backtracking 回溯
    • Recursion 遞歸
    • DivideandConquer 分治
    • Memoization 記憶化搜索
    • Quickselect 快速選擇
    • MergeSort 歸并排序
  • CommonDataStructures 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
    • HashTable 哈希表
    • Tree 樹(shù)
    • BinaryTree 二叉樹(shù)
    • Stack 棧
    • Heap(PriorityQueue) 堆(優(yōu)先隊(duì)列)
    • Graph 圖
    • LinkedList 鏈表
    • BinarySearchTree 二叉搜索樹(shù)
    • MonotonicStack 單調(diào)棧
    • Queue 隊(duì)列
    • OrderedSet 有序集合
    • TopologicalSort 拓?fù)渑判?/li>
    • ShortestPath 最短路
    • Doubly-LinkedList 雙向鏈表
    • MonotonicQueue 單調(diào)隊(duì)列
    • MinimumSpanningTree 最小生成樹(shù)
    • StronglyConnectedComponent 強(qiáng)連通分量
    • EulerianCircuit 歐拉回路
    • BiconnectedComponent 雙連通分量
  • AdvancedDataStructures 高級(jí)數(shù)據(jù)結(jié)構(gòu)
    • UnionFind 并查集
    • Trie 字典樹(shù)
    • SegmentTree 線段樹(shù)
    • BinaryIndexedTree 樹(shù)狀數(shù)組
    • SuffixArray 后綴數(shù)組
  • Techniques 技巧
    • TwoPointers 雙指針
    • BitManipulation 位運(yùn)算
    • SlidingWindow 滑動(dòng)窗口
    • PrefixSum 前綴和
    • Counting 計(jì)數(shù)
    • Bitmask 狀態(tài)壓縮
    • HashFunction 哈希函數(shù)
    • RollingHash 滾動(dòng)哈希
    • LineSweep 掃描線
  • Math 數(shù)學(xué)
    • Math 數(shù)學(xué)
    • Geometry 幾何
    • GameTheory 博弈
    • Randomized 隨機(jī)化
    • Combinatorics 組合數(shù)學(xué)
    • NumberTheory 數(shù)論
    • ProbabilityandStatistics 概率與統(tǒng)計(jì)
    • ReservoirSampling 水塘抽樣
    • RejectionSampling 拒絕采樣
  • Other 其他
    • Database 數(shù)據(jù)庫(kù)
    • Design 設(shè)計(jì)
    • DataStream 數(shù)據(jù)流
    • Interactive 交互
    • Brainteaser 腦筋急轉(zhuǎn)彎
    • Iterator 迭代器
    • Concurrency 多線程
    • Shell
# fetch/xhr grphql questionTagTypeWithTags
a = json.loads(s)
a = a['data']['questionTagTypeWithTags']
for i in a:
    print("-", i['name'].replace(" ", ""), i['transName'])
    for j in i['tagRelation']:
        j = j['tag']
        print("  -", j['name'].replace(" ", ""), j['nameTranslated'])

mark


  • 算法帝國(guó) 算法之美
  • 算法通關(guān)之路 2021.8 LeetCode題解
  • 劍指offer 名企面試官精講典型編程題 專項(xiàng)突破版; 2021.8
  • 大話數(shù)據(jù)結(jié)構(gòu); 程杰 2020.12
  • CTCI Cracking the coding interview 程序員面試金典6 2019.9; 程序員面試金典ed5 2013.11
  • 漫畫(huà)算法: 小灰的算法之旅; 2019.5
  • 程序員的算法趣題
    • 2 2023.5; 內(nèi)存優(yōu)化+動(dòng)態(tài)規(guī)劃
    • 1 2017.7
  • grokking algorithms 算法圖解; 2017.3; 入門(mén)佳作
  • 妙趣橫生的算法; C++語(yǔ)言實(shí)現(xiàn) 2014.10; C語(yǔ)言實(shí)現(xiàn)2 2015.3
  • 算法的樂(lè)趣; 王曉華.orbit 2015.3
  • Programming Pearls 編程珠璣; 2014.12
  • 挑戰(zhàn)程序設(shè)計(jì)競(jìng)賽ed2; 2013.7
  • 數(shù)據(jù)結(jié)構(gòu)與算法分析 java語(yǔ)言描述; 鄧俊輝 2013
  • Introduction to Algorithms 算法導(dǎo)論 ed3; 2012.12; 2層, 一層培養(yǎng)算法思維+使用現(xiàn)有的結(jié)論, 一層深入算法的數(shù)學(xué)證明(這層可選擇); MIT算法導(dǎo)論.bilibili
  • TAOCP theArtOfComputerProgramming 計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) ed3; 1基本算法 2半數(shù)值算法 3排序與查找 4A組合算法
  • Algorithms 算法ed4; 2012.10; 閱讀計(jì)劃.ituring-wechat
  • 程序員實(shí)用算法 2009.9
  • 編程之美 微軟技術(shù)面試心得; 劉鐵鋒 2008.3

  • 如果使用循環(huán)欣福,程序的性能可能更高拓劝;如果使用遞歸郑临,程序可能更容易理解厢洞。如何選擇要看什么對(duì)你來(lái)說(shuō)更重要。-- Leigh Caldwell
  • Haskell 等函數(shù)式編程語(yǔ)言就沒(méi)有循環(huán)丧叽,因此你只能使用遞歸來(lái)編寫(xiě)這樣的函數(shù)蠢正。如果你對(duì)遞歸有深入的認(rèn)識(shí)嚣崭,函數(shù)式編程語(yǔ)言學(xué)習(xí)起來(lái)將更加容易雹舀。如果你喜歡遞歸或者想學(xué)習(xí)一門(mén)新語(yǔ)言说榆,可以研究一下 Haskell
  • 數(shù)據(jù)結(jié)構(gòu)是典型的面向?qū)ο笏季S 算法是典型的面對(duì)過(guò)程思維
  • 學(xué)習(xí)算法是非常有趣和令人激動(dòng)的; 但是算法, 就是解決問(wèn)題時(shí)的那份「優(yōu)雅」.
  • 算法4特征.Knuth: 確定 有窮 可行 IO; 程序=算法+數(shù)據(jù)結(jié)構(gòu); 問(wèn)題的數(shù)學(xué)模型->IO->算法
  • 算法與解釋: 清單.算法的生活化解讀 算法自身是沒(méi)有任何企圖的.算法不是道德主體.可接受vs不可接受 不同表達(dá)方式.解釋算法 一切皆有可能vs無(wú)限可能 透明性.可計(jì)算.可判斷.可靠.安全
  • 算法與現(xiàn)實(shí): 書(shū)寫(xiě)符號(hào).字典查找/加減法 打孔卡片制表機(jī).鼓浪嶼風(fēng)琴博物館 data.gov
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末签财,一起剝皮案震驚了整個(gè)濱河市唱蒸,隨后出現(xiàn)的幾起案子神汹,更是在濱河造成了極大的恐慌,老刑警劉巖滔以,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件你画,死亡現(xiàn)場(chǎng)離奇詭異撬即,居然都是意外死亡呈队,警方通過(guò)查閱死者的電腦和手機(jī)宪摧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)几于,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人朽砰,你說(shuō)我怎么就攤上這事瞧柔∧郎眩” “怎么了廉邑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蛛蒙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我倍靡,道長(zhǎng)塌西,這世上最難降的妖魔是什么筝尾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任站辉,我火速辦了婚禮饰剥,結(jié)果婚禮上摧阅,老公的妹妹穿的比我還像新娘。我一直安慰自己顾孽,他們只是感情好若厚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布测秸。 她就那樣靜靜地躺著霎冯,像睡著了一般肃晚。 火紅的嫁衣襯著肌膚如雪仔戈。 梳的紋絲不亂的頭發(fā)上监徘,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天凰盔,我揣著相機(jī)與錄音,去河邊找鬼落剪。 笑死忠怖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凡泣。 我是一名探鬼主播鞋拟,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贺纲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼哮笆!你這毒婦竟也來(lái)了稠肘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤滑黔,失蹤者是張志新(化名)和其女友劉穎略荡,沒(méi)想到半個(gè)月后汛兜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粥谬,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漏策,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年掺喻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褂乍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片树叽。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖层皱,靈堂內(nèi)的尸體忽然破棺而出赠潦,到底是詐尸還是另有隱情她奥,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布绷跑,位于F島的核電站凡资,受9級(jí)特大地震影響隙赁,放射性物質(zhì)發(fā)生泄漏伞访。R本人自食惡果不足惜厚掷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一蝗肪、第九天 我趴在偏房一處隱蔽的房頂上張望薛闪。 院中可真熱鬧,春花似錦腊状、人聲如沸缴挖。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)湾蔓。三九已至,卻和暖如春默责,著一層夾襖步出監(jiān)牢的瞬間贬循,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工桃序, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杖虾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓葡缰,卻偏偏與公主長(zhǎng)得像亏掀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泛释,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容