{"id":20524071,"url":"https://github.com/kimi0230/leetcodegolang","last_synced_at":"2026-05-27T14:09:01.351Z","repository":{"id":45067263,"uuid":"345895230","full_name":"kimi0230/LeetcodeGolang","owner":"kimi0230","description":"Leetcode, Codility and GeekforGeeks algorithms exercises written in Golang.","archived":false,"fork":false,"pushed_at":"2025-12-31T04:13:18.000Z","size":25412,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-04T05:54:14.947Z","etag":null,"topics":["algorithms","codility","codility-lessons","codility-lessons-exercises","data-structures","geekforgeeks-solutions","geeksforgeeks","gitbook","golang","leetcode","leetcode-golang","leetcode-solutions"],"latest_commit_sha":null,"homepage":"https://kimi0230.github.io/LeetcodeGolang/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kimi0230.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-09T05:37:28.000Z","updated_at":"2025-12-31T04:12:33.000Z","dependencies_parsed_at":"2023-10-16T06:21:47.196Z","dependency_job_id":"173dfc57-d019-4783-8156-eaf562e9b813","html_url":"https://github.com/kimi0230/LeetcodeGolang","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/kimi0230/LeetcodeGolang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimi0230%2FLeetcodeGolang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimi0230%2FLeetcodeGolang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimi0230%2FLeetcodeGolang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimi0230%2FLeetcodeGolang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kimi0230","download_url":"https://codeload.github.com/kimi0230/LeetcodeGolang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimi0230%2FLeetcodeGolang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33569086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","codility","codility-lessons","codility-lessons-exercises","data-structures","geekforgeeks-solutions","geeksforgeeks","gitbook","golang","leetcode","leetcode-golang","leetcode-solutions"],"created_at":"2024-11-15T22:47:41.574Z","updated_at":"2026-05-27T14:09:01.322Z","avatar_url":"https://github.com/kimi0230.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Leetcode in Golang\n[![Build latest tag](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/releace.yml/badge.svg)](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/releace.yml) [![Build my gitbook and deploy to gh-pages](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/build.yml/badge.svg)](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/build.yml) [![pages-build-deployment](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/kimi0230/LeetcodeGolang/actions/workflows/pages/pages-build-deployment) ![](https://steel-quark-crabapple.glitch.me/badge?page_id=kimi0230.LeetCodeGolang)\n\n[Leetcode](https://leetcode.com/), [Codility](https://app.codility.com/programmers/) , [GeekforGeeks algorithms](https://www.geeksforgeeks.org/fundamentals-of-algorithms/?ref=shm) exercises written in Golang.\n\nhttps://kimi0230.github.io/LeetcodeGolang/\n\n---\n## [leetcode](https://leetcode.com/) Content\n- [Leetcode in Golang](#leetcode-in-golang)\n- [leetcode Content](#leetcode-content)\n  - [Data Structure](#data-structure)\n    - [Array \\\u0026 String](#array--string)\n    - [Matrix](#matrix)\n    - [Linked List](#linked-list)\n    - [HashSet \\\u0026 HashMap](#hashset--hashmap)\n    - [Stack \\\u0026 Queue](#stack--queue)\n    - [Heap \\\u0026 Priority Queue](#heap--priority-queue)\n      - [Heap 有幾個特色：](#heap-有幾個特色)\n      - [heap sort](#heap-sort)\n    - [Disjoint Set Union](#disjoint-set-union)\n    - [Trie](#trie)\n    - [Binary Indexed Tree](#binary-indexed-tree)\n    - [Design Data Structures](#design-data-structures)\n  - [Algorithm](#algorithm)\n    - [Greedy](#greedy)\n    - [Sort](#sort)\n    - [Multiple Pointers](#multiple-pointers)\n    - [Backtracking (回溯法). DFS](#backtracking-回溯法-dfs)\n    - [DFS \\\u0026 BFS](#dfs--bfs)\n    - [Dynamic Programming](#dynamic-programming)\n    - [Sliding Window](#sliding-window)\n    - [Sweep Line](#sweep-line)\n    - [Rolling Sum](#rolling-sum)\n    - [Two Pointers](#two-pointers)\n    - [Bit Manipulation∂](#bit-manipulation)\n    - [Union Find](#union-find)\n    - [Breadth First Search](#breadth-first-search)\n    - [Binary Search](#binary-search)\n    - [Minimax](#minimax)\n  - [Graph](#graph)\n    - [Graph](#graph-1)\n    - [Topological Sort](#topological-sort)\n    - [Tree](#tree)\n    - [Tree Traversal](#tree-traversal)\n    - [Binary Search Tree](#binary-search-tree)\n    - [Compputational Geometry](#compputational-geometry)\n  - [Selected Topics](#selected-topics)\n    - [Mathematics](#mathematics)\n    - [Random](#random)\n    - [Bitwise Manipulation](#bitwise-manipulation)\n- [GeeksforGeeks Content](#geeksforgeeks-content)\n- [Codility Content](#codility-content)\n- [Reference](#reference)\n\n### Data Structure\n\n#### Array \u0026 String\n\n| No.                                                                                                            |                                                                Title                                                                |                                                         Solution                                                          | Difficulty | Time          | Space  | Topic                         |\n|----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------:|------------|---------------|--------|-------------------------------|\n| [0001](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0001.Two-Sum)                                        |                                          [Two Sum](https://leetcode.com/problems/two-sum/)                                          |                    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0001.Two-Sum)                     | Easy       | O(n)          | O(n)   | Array                         |\n| [0003](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0003.Longest-Substring-Without-Repeating-Characters) |   [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)   | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0003.Longest-Substring-Without-Repeating-Characters) | Medium     | O(n)          | O(1)   | Array, Sliding Window         |\n| [0015](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0015.3Sum)                                           |                                            [3 Sum](https://leetcode.com/problems/3sum/)                                             |                      [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0015.3Sum)                      | Medium     | O(n^2)        | O(n)   | Array                         |\n| [0027](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0027.Remove-Element)                                 |                                   [Remove Element](https://leetcode.com/problems/remove-element/)                                   |                 [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0027.Remove-Element)                 | Easy       | O(n)          | O(1)   | Array                         |\n| [0035](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0035.Search-Insert-Position)                         |                           [Search Insert Position](https://leetcode.com/problems/search-insert-position/)                           |             [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0035.Search-Insert-Position)             | Easy       | O(n), O(logn) | O(1)   | Array                         |\n| [0049](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0049.Group-Anagrams)                                 |                               [Search Insert Position](https://leetcode.com/problems/group-anagrams/)                               |                 [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0049.Group-Anagrams)                 | Medium     | O(kn)         | O(kn)  | Array                         |\n| [0059](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0059.Spiral-Matrix-II)                               |                                 [Spiral Matrix II](https://leetcode.com/problems/spiral-matrix-ii/)                                 |                [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0059.Spiral-Matrix-II)                | Medium     | O(n)          | O(n^2) | Array                         |\n| [0088](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0088.Merge-Sorted-Array)                             |                               [Merge Sorted Array](https://leetcode.com/problems/merge-sorted-array/)                               |               [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0088.Merge-Sorted-Array)               | Easy       | O(n)          | O(1)   | Array                         |\n| [0217](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0217.Contains-Duplicate)                             |                      [0217.Contains Duplicate](https://leetcode.com/problems/contains-duplicate/description/)                       |               [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0217.Contains-Duplicate)               | Easy       | O(n)          | O(n)   | Array                         |\n| [0242](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0242.Valid-Anagram)                                  |                           [0242.Valid Anagram](https://leetcode.com/problems/valid-anagram/description/)                            |                 [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0242.Valid-Anagram)                  | Easy       | O(n)          | O(n)   | Array                         |\n| [0409](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0409.Longest-Palindrome)                             |                            [409. Longest Palindrome](https://leetcode.com/problems/longest-palindrome/)                             |               [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0409.Longest-Palindrome)               | Easy       | O(n)          | O(1)   | Array                         |\n| [0380](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0380.Insert-Delete-GetRandom-O1)                     |             [0380.Insert Delete GetRandom O(1)](https://leetcode.com/problems/insert-delete-getrandom-o1/description/)              |           [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0380.Insert-Delete-GetRandom-O1)           | Medium     | O(1)          | O(n)   | Array                         |\n| [0381](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0381.Insert-Delete-GetRandom-O1-Duplicates-allowed)  | [0381.Insert Delete GetRandom O(1) Duplicates allowed](https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0381.Insert-Delete-GetRandom-O1-Duplicates-allowed)  | Medium     | O(1)          | O(n)   | Array                         |\n| [0412](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0412.Fizz-Buzz)                                      |                               [0412.Fizz Buzz](https://leetcode.com/problems/fizz-buzz/description/)                                |                   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0412.Fizz-Buzz)                    | Easy       | O(n)          | O(n)   | Array, string                 |\n| [1195](https://kimi0230.github.io/LeetcodeGolang/Leetcode/1195.Fizz-Buzz-Multithreaded)                        |                 [1195.Fizz Buzz Multithreaded](https://leetcode.com/problems/fizz-buzz-multithreaded/description/)                  |            [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/1195.Fizz-Buzz-Multithreaded)             | Medium     | O(n)          |        | Array, string,Concurrency     |\n| [0238](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0238.Product-of-Array-Except-Self)                   |            [238. Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/description/)             |          [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0238.Product-of-Array-Except-Self)          | Medium     | O(n)          |        | Array, string, Prefix Sum     |\n| [0128](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0128.Longest-Consecutive-Sequence)                   |            [128. Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/description/)             |          [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0128.Longest-Consecutive-Sequence)          | Medium     | O(n)          | O(n)   | Array, Hash Table, Union Find |\n\n---\n\n#### Matrix\n\n---\n#### Linked List\n\n| No.                                                                                               |                                                Title                                                |                                                  Solution                                                   | Difficulty | Time        | Space | Topic                     |\n|---------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|------------|-------------|-------|---------------------------|\n| [0019](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0019.Remove-Nth-Node-From-End-of-List/) | [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0019.Remove-Nth-Node-From-End-of-List) | Medium     | O(n)        | O(1)  | Linked List, Two Pointers |\n| [0141](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0141.Linked-List-Cycle/)                |                [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle)                 |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0141.Linked-List-Cycle)         | Easy       | O(n)        | O(1)  | Linked List, Two Pointers |\n| [0142](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0142.Linked-List-CycleII/)              |             [Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii/)             |       [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0142.Linked-List-CycleII)        | Medium     | O(n)        | O(1)  | Linked List, Two Pointers |\n| [0203](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0203.Remove-Linked-List-Elements)       |      [Remove Linked List Elements](https://leetcode.com/problems/remove-linked-list-elements/)      |   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0203.Remove-Linked-List-Elements)    | Easy       | O(n)        | O(1)  | Linked List               |\n| [0206](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0206.Reverse-Linked-List)               |              [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)              |              [Go](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0206.Reverse-Linked-List)              | Easy       | O(n)        | O(1)  | Linked List               |\n| [0876](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0876.Middle-of-the-Linked-List/)        |        [Middle of the Linked List](https://leetcode.com/problems/middle-of-the-linked-list/)        |    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0876.Middle-of-the-Linked-List)     | Easy       |             |       | Linked List, Two Pointers |\n| [0021](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0021.Merge-Two-Sorted-Lists/)           |     [Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/description/)     |      [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0021.Merge-Two-Sorted-Lists)      | Easy       | O(log n)    | O(1)  | Linked List               |\n| [0002](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0002.Add-Two-Numbers/)                  |                  [Add Two Number](https://leetcode.com/problems/add-two-numbers//)                  |         [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0002.Add-Two-Numbers)          | Medium     | O(max(m,n)) | O(1)  | Linked List               |\n\n---\n\n#### HashSet \u0026 HashMap\n\n---\n\n#### Stack \u0026 Queue\n\n| No.                                                                                            |                                             Title                                             |                                                 Solution                                                 | Difficulty | Time | Space | Topic |\n|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------:|------------|------|-------|-------|\n| [0020](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0020.Valid-Parentheses/)             |             [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)             |       [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0020.Valid-Parentheses)       | Easy       | O(n) | O(n)  | Stack |\n| [0094](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0094.Binary-Tree-Inorder-Traversal/) | [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0094.Binary-Tree-Inorder-Traversal) | Medium     | O(n) | O(1)  | Stack |\n\n\n#### Heap \u0026 Priority Queue\n\nHeap 總是能讓整棵樹當中最大或最小值維持在root節點上\n\n##### Heap 有幾個特色：\n* 常見架構是像 binary tree 那樣\n* 保持 balanced\n* max heap 的 root 是最大值；min heap 的 root 則是最小值\n* 雖然是 tree，卻很適合放在 array 中處理\n\n##### heap sort\n根據定義 heap 的 root 一定是最大(假設是 max heap)，也就是說，無序數列經過 heapify 再作 n 次 root deletion 取出最大值，就可以得到排序的結果。\n最後就得到 heap sort 的 worst case 時間複雜度 O(nlogn) 的結果。\n可是 quick sort 的 worst case 時間複雜度是 O(n²)，怎麼 quick sort 的時間複雜度比較糟糕卻比較受歡迎？\ngoogle 的結果是說 heap sort 比較不利於 caching 對於 spatial locality 機制，蠻有道理的阿。\n* https://www.zhihu.com/question/23873747\n* https://rust-algo.club/sorting/heapsort/index.html\n\n| No.                                                                                              |                                               Title                                               |                                                  Solution                                                  | Difficulty | Time             | Space | Topic                            |\n|--------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|------------|------------------|-------|----------------------------------|\n| [0703](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0703.Kth-Largest-Element-in-a-Stream/) | [Kth Largest Element in a Stream](https://leetcode.com/problems/kth-largest-element-in-a-stream/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0703.Kth-Largest-Element-in-a-Stream) | Easy       | O(K + (N-K)logK) | O(k)  | Heap, Priority Queue             |\n| [1046](https://kimi0230.github.io/LeetcodeGolang/Leetcode/1046.Last-Stone-Weight/)               |               [Last Stone Weight](https://leetcode.com/problems/last-stone-weight/)               |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/1046.Last-Stone-Weight)        | Easy       | O(nlogn)         | O(n)  | Heap, Priority Queue             |\n| [0347](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0347.Top-K-Frequent-Elements/)         |   [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/description/)   |     [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0347.Top-K-Frequent-Elements)     | Medium     | O(Nlog⁡k)         | O(n)  | Heap, Priority Queue, Quick Sort |\n\n\n#### Disjoint Set Union\n\n#### Trie\n\n#### Binary Indexed Tree\n \n#### Design Data Structures\n\n---\n\n### Algorithm\n\n#### Greedy\n\n---\n\n#### Sort\n| No.                                                                                              |                                               Title                                               |                                                  Solution                                                  | Difficulty | Time | Space   | Topic |\n|--------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|------------|------|---------|-------|\n| [0075](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0075.Sort-Colors/)                     |                     [Sort Colors](https://leetcode.com/problems/sort-colors/)                     |           [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0075.Sort-Colors)           | Medium     | O(n) | O(1)    | Sort  |\n| [0215](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0215.Kth-Largest-Element-in-an-Array/) | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0215.Kth-Largest-Element-in-an-Array) | Medium     | O(n) | O(logn) | Sort  |\n\n#### Multiple Pointers\n\n---\n\n#### Backtracking (回溯法). DFS\nDFS. 解決一個回溯問題, 實際上就是一個**決策樹**的遍歷過程.\n算是一個暴力的窮舉算法\n1. 路徑：也就是已經做出的選擇。\n2. 選擇列表：也就是你當前可以做的選擇。\n3. 結束條件：也就是到達決策樹底層，無法再做選擇的條件。\n4. https://www.bilibili.com/video/BV1P5411N7Xc\n\n\n```python\nresult = []\ndef backtrack(路徑, 選擇列表):\n    if 滿足結束條件:\n        result.add(路徑)\n        return\n    \n    for 選擇 in 選擇列表:\n        做選擇(前序)\n        backtrack(路徑, 選擇列表)\n        撤銷選擇(後序)\n```\n\n| No.                                                                           |                                Title                                 |                                        Solution                                         | Difficulty | Time   | Space | Topic        |\n|-------------------------------------------------------------------------------|:--------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|------------|--------|-------|--------------|\n| [0046](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0046.Permutations/) | [Permutations (全排列)](https://leetcode.com/problems/permutations/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0046.Permutations) | Medium     | O(n)   | O(n)  | Backtracking |\n| [0078](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0078.Subsets/)      |          [Subsets](https://leetcode.com/problems/subsets/)           |   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0078.Subsets)    | Medium     | O(n^2) | O(n)  | Backtracking |\n\n---\n\n#### DFS \u0026 BFS\n\n找最短路徑用**BFS**, \n其他時用**DFS**用得多一些, 因為遞迴較好寫\n\n假設有棵滿的二叉樹,節點數為 N. 對DFS來說空間複雜度就是遞迴, 最壞的情況就是樹的高度 O(log N)\nBFS算法, Queue每次都會存二叉樹一層的節點, 最壞的情況下空間複雜度應該就是樹的最下層的數量, 也就是 N/2. 空間複雜度 O(N)\n\nDFS（深度優先搜索）通常使用堆棧（Stack）來實現。在DFS中，您首先處理一個節點，然後將其子節點按某種順序推入堆棧中，接著繼續處理堆棧頂部的節點，直到堆棧為空。\nBFS（廣度優先搜索）則使用隊列（Queue）來實現。在BFS中，您首先處理一個節點，然後將其子節點按某種順序排隊，接著繼續處理隊列的前端節點，直到隊列為空。\n\n| No.                                                                                 |                                  Title                                  |                                           Solution                                            | Difficulty | Time   | Space  | Topic     |\n|-------------------------------------------------------------------------------------|:-----------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------:|------------|--------|--------|-----------|\n| [0695](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0695.Max-Area-of-Island/) | [Max Area of Island](https://leetcode.com/problems/max-area-of-island/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0695.Max-Area-of-Island) | Medium     | O(m*n) | O(m*n) | DFS \u0026 BFS |\n| [0733](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0733.Flood-Fill/)         |         [Flood Fill](https://leetcode.com/problems/flood-fill)          |     [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0733.Flood-Fill)     | Easy       | O(m*n) | O(m*n) | DFS \u0026 BFS |\n\n---\n#### Dynamic Programming\n動態規劃問題的一般形式就是**求最值**, **最長**遞增子序列, **最小**編輯距離等. 核心問題是窮舉\n1. 重疊子問題\n   1. memory table\n   2. DP table\n2. 最優子結構\n3. 狀態轉移方程式\n   1. 這問題的 base case (最簡單情況) 是什麼?\n   2. 這問題有什麼**狀態**\n   3. 對於每個狀態, 可以做出什麼**選擇**, 使得狀態發生改變\n   4. 如何定義 dp 數組/函數的含義來表現**狀態**和**選擇**?\n\n| 替換 /跳過 \u003cbr\u003e dp[i-1][j-1] | 刪除 \u003cbr\u003e dp[i-1][j] |\n|------------------------------|----------------------|\n| 插入 \u003cbr\u003e dp[i][j-1]         | dp[i][j]             |\n\n```python\n# 初始化 base case\ndp[0][0][...] = base\n# 進行狀態轉移\nfor 狀態1 in 狀態1的所有取值：\n    for 狀態2 in 狀態2的所有取值：\n        for ...\n            dp[狀態1][狀態2][...] = 求最值(選擇1，選擇2...)\n```\n\n| No.                                                                                             |                                              Title                                              |                                                 Solution                                                  | Difficulty | Time                          | Space    | Topic               |\n|-------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------:|------------|-------------------------------|----------|---------------------|\n| [0053](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0053.Maximum-Subarray/)               |               [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)               |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0053.Maximum-Subarray)        | Easy       | O(n)                          | O(n)     | Dynamic Programming |\n| [0072](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0072.Edit-Distance/)                  |               [0072. Edit Distance](https://leetcode.com/problems/edit-distance/)               |         [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0072.Edit-Distance)          | Hard       |                               |          | Dynamic Programming |\n| [0300](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0300.Longest-Increasing-Subsequence/) | [Longest-Increasing-Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0300.Longest-Increasing-Subsequence) | Medium     | 方法一:O(n^2) 方法二:O(nlogn) | O(n)     | Dynamic Programming |\n| [0322](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0322.Coin-Change/)                    |                    [Coin Change](https://leetcode.com/problems/coin-change/)                    |          [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0322.Coin-Change)           | Medium     | O(nm)                         | O(n)     | Dynamic Programming |\n| [0354](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0354.Russian-Doll-Envelopes/)         |         [Russian Doll Envelope](https://leetcode.com/problems/russian-doll-envelopes/)          |     [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0354.Russian-Doll-Envelopes)     | Hard       |                               |          | Dynamic Programming |\n| [0509](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0509.Fibonacci-Number/)               |               [Fibonacci Number](https://leetcode.com/problems/fibonacci-number/)               |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0509.Fibonacci-Number)        | Easy       | 很多解法                      | 很多解法 | Dynamic Programming |\n| [0070](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0070.Climbing-Stairs/)                |             [0070.Climbing Stairs](https://leetcode.com/problems/climbing-stairs/)              |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0070.Climbing-Stairs)         | Easy       | O(n)                          | O(n)     | Dynamic Programming |\n| [0746](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0746.Min-Cost-Climbing-Stairs/)       |    [0746.Min Cost Climbing Stairs](https://leetcode.com/problems/min-cost-climbing-stairs/)     |    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0746.Min-Cost-Climbing-Stairs)    | Easy       | O(n)                          | O(1)     | Dynamic Programming |\n\n---\n\n#### Sliding Window\n維護一個窗口, 不斷滑動\n```c++\nvoid slidingWindow(string s, string t){\n    unordered map\u003cchar,int\u003eneed, window;\n    for (char c:t) need[c++]\n    int left = 0 , right = 0\n    int valid = 0\n\n    // 先移動 right 再移動 left. 直到right到達 string的末端\n    while(right \u003c s.size()){\n        // c是將移入窗口的字符\n        char c = s[right]\n        // 右移窗口 \n        right++\n        // 進行窗口內數據的一系列更新\n        // ...\n\n        /*** 用來debug 輸出位置 ***/\n        printf(\"window: [%d, %d)\\n\",left,right)\n        /************************/\n\n        // 判斷左側窗口是否收縮\n        while(window needs shrink){\n           // d是將移出窗口的字符\n           // 左移窗口 \n            left++\n            // 進行窗口內數據的一系列更新\n            // ...\n        }\n    }\n}\n```\n| No.                                                                                            |                                             Title                                             |                                                 Solution                                                 | Difficulty | Time                      | Space              | Topic          |\n|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------:|------------|---------------------------|--------------------|----------------|\n| [0209](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0209.Minimum-Size-Subarray-Sum/)     |     [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/)     |   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0209.Minimum-Size-Subarray-Sum)   | Medium     | O(n^2) / O(n) / O(nlog n) | O(1) / O(1) / O(n) | Sliding Window |\n| [0438](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0438.Find-All-Anagrams-in-a-String/) | [Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0438.Find-All-Anagrams-in-a-String) | Medium     | O(n)                      | O(1)               | Sliding Window |\n| [0567](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0567.Permutation-in-String/)         |         [Permutation in String](https://leetcode.com/problems/permutation-in-string/)         |     [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0567.Permutation-in-String)     | Medium     | O(n)                      | O(1)               | Sliding Window |\n\n---\n#### Sweep Line\n\n\n---\n#### Rolling Sum\n\n---\n#### Two Pointers\n只要**array有序**, 就應該想到雙指針技巧\n分為兩類 1. \"快,慢指針\" 2. \"左,右指針\"\n   1. 快,慢指針: 主要解決 linkedlist 問題, 典型的判斷 linkedlist 是否包含環\n   2. 左,右指針: 主要解決array(或 string)中的問題, 如二分搜尋.\n\nhttps://labuladong.gitee.io/algo/2/21/57/\n\n| No.                                                                                               |                                            Title                                             |                                                  Solution                                                   | Difficulty | Time | Space | Topic                       |\n|---------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|------------|------|-------|-----------------------------|\n| [0019](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0019.Remove-Nth-Node-From-End-of-List/) | [Remove Nth Node From End of List](https://leetcode.com/problems/middle-of-the-linked-list/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0019.Remove-Nth-Node-From-End-of-List) | Medium     | O(n) | O(1)  | Linked List, Two Pointers   |\n| [0141](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0141.Linked-List-Cycle/)                |             [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle)             |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0141.Linked-List-Cycle)         | Easy       | O(n) | O(1)  | Linked List, Two Pointers   |\n| [0283](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0283.Move-Zeroes/)                      |                  [Move Zeroes](https://leetcode.com/problems/move-zeroes/)                   |           [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0283.Move-Zeroes)            | Easy       | O(n) | O(1)  | Two Pointers                |\n| [0142](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0142.Linked-List-CycleII/)              |         [Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii/)          |       [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0142.Linked-List-CycleII)        | Medium     | O(n) | O(1)  | Linked List, Two Pointers   |\n| [0344](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0344.Reverse-String/)                   |               [Reverse String](https://leetcode.com/problems/reverse-string/)                |          [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0344.Reverse-String)          | Easy       | O(n) | O(1)  | Two Pointers                |\n| [0876](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0876.Middle-of-the-Linked-List/)        |    [Middle of the Linked List](https://leetcode.com/problems/middle-of-the-linked-list/)     |    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0876.Middle-of-the-Linked-List)     | Easy       |      |       | Linked List, Two Pointers   |\n| [0011](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0011.Container-With-Most-Water/)        |                 [Container With Most Water](0011.Container-With-Most-Water)                  |    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0011.Container-With-Most-Water)     | Medium     |      |       | Two Pointers                |\n| [0074](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0074.Search-a-2D-Matrix/)               |           [Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/)            |        [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0074.Search-a-2D-Matrix)        | Medium     |      |       | Binary Search, Two Pointers |\n\n---\n\n#### Bit Manipulation∂\n\n| No.                                                                                                  |                                                   Title                                                   |                                                    Solution                                                    | Difficulty | Time       | Space       | Topic            |\n|------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------:|------------|------------|-------------|------------------|\n| [0693](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0693.Binary-Number-with-Alternating-Bits/) | [Binary Number with Alternating Bits](https://leetcode.com/problems/binary-number-with-alternating-bits/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0693.Binary-Number-with-Alternating-Bits) | Easy       | O(n)/ O(1) | O(1) / O(1) | Bit Manipulation |\n\n---\n\n#### Union Find\n\n| No.                                                                             |                              Title                              |                                         Solution                                          | Difficulty | Time              | Space       | Topic      |\n|---------------------------------------------------------------------------------|:---------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|------------|-------------------|-------------|------------|\n| [0721](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0721.Accounts-Merge/) | [Accounts Merge](https://leetcode.com/problems/accounts-merge/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0721.Accounts-Merge) | Easy       | O(n) / O(n log n) | O(n) / O(n) | Union Find |\n\n---\n\n#### Breadth First Search\n* DFS 算法可以被認為是[回溯算法](#backtracking-回溯法), BFS算法都是用**Queue**這種數據結構, 每次將一個截短周圍的所有節點加入Queue.\n* BFS 找到的路徑一定是最短的, 但是代價是**空間複雜度**比DFS大. [BFS vs DFS](https://github.com/kimi0230/MyGoNote/blob/main/structures/BFS_vs_DFS.md)\n* 優化: 雙向 BFS 優化, 在 while 開始時做一個判斷. 讓每次都選擇較小的集合進行擴散,\n那麼佔用的空間增長速度就會慢一些, 盡可能以最小的空間代價產生 curDepth 和 nextDepth 的交集\n無論單向的 BFS 或是 雙向BFS, 優化過的BFS 空間複雜度都是一樣的\n\n```c++\n// 計算從起點 start 到 終點 target 的最點距離\nint BFS(Node start, Node targe){\n    Queue\u003cNode\u003e q; // 核心數據結構\n    Set\u003cNode\u003e visited; // 避免走回頭路\n    \n    q.offer(start); // 將起點加入 Queue\n    visited.add(start);\n    int step = 0; // 紀錄擴散的步數\n\n    while(q not empty) {\n        int sz = q.size();\n        // 當前 Queue 中的所有節點向四周擴散\n        for (int i = 0 ; i \u003c sz; i++) {\n            Node cur = q.poll();\n            // 這裡判斷是否到達終點\n            if (cur is target) {\n                return step;\n            }\n\n            // 將cur 的相鄰節點加入 Queue\n            for (Node x : cur.adj()) {\n                if (x not in visited) {\n                    q.offer(x);\n                    visited.add(x);\n                }\n            }\n        }\n        // 在這裡更新步數\n        step++\n    }\n}\n```\n\n| No.                                                                                   |                                    Title                                    |                                            Solution                                             | Difficulty | Time | Space | Topic                |\n|---------------------------------------------------------------------------------------|:---------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------:|------------|------|-------|----------------------|\n| [0310](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0310.Minimum-Height-Trees/) | [Minimum Height Trees](https://leetcode.com/problems/minimum-height-trees/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0310.Minimum-Height-Trees) | Medium     |      |       | Breadth First Search |\n| [0752](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0752.Open-the-Lock/)        |     [752. Open the Lock](https://leetcode.com/problems/open-the-lock/)      |    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0752.Open-the-Lock)     | Medium     |      |       | Breadth First Search |\n\n---\n#### Binary Search\n分析二分搜尋技巧: 不要出現 **else**, 而是把所有情況用 **else if** 寫清楚.\n計算 mid 時需要防止溢出\n```c++\nint binarySearch(int[] nums, int target){\n    int left = 0 , right = ...;\n    while(...) {\n        int mid = left + (right - left)/2\n        if (nums[mid] == target){\n            ...\n        } else if (nums[mid] \u003c target){\n            left = ...\n        } else if (nums[mid] \u003e target){\n            right = ...\n        }\n    }\n    return ...;\n}\n```\n\n**將搜尋區間全部統一成兩端都閉**, 方便記憶\n`[letf,right]`\n\n```go\nfunc Search(nums []int, target int) int {\n\tlenght := len(nums)\n\tif lenght \u003c= 0 {\n\t\treturn -1\n\t}\n\tleft, right := 0, lenght-1\n\n\tfor left \u003c= right {\n\t\tmid := (right-left)/2 + left\n\t\tif nums[mid] == target {\n\t\t\treturn mid\n\t\t} else if nums[mid] \u003c target {\n\t\t\t// 找右邊\n\t\t\tleft = mid + 1\n\t\t} else if nums[mid] \u003e target {\n\t\t\t// 找左邊\n\t\t\tright = mid - 1\n\t\t}\n\t}\n\t// 都沒找到\n\treturn -1\n}\n\n// 有點類似 nums 小於 target的元素有幾個\nfunc LeftBound(nums []int, target int) (index int) {\n\tlenght := len(nums)\n\tif lenght \u003c= 0 {\n\t\treturn -1\n\t}\n\tleft, right := 0, lenght-1\n\n\tfor left \u003c= right {\n\t\t// 除以2\n\t\t// mid := left + (right-left)\u003e\u003e1\n\t\tmid := int(uint(right+left) \u003e\u003e 1)\n\t\tif nums[mid] == target {\n\t\t\t// 要繼續找左邊, 所以把右邊變小\n\t\t\tright = mid - 1\n\t\t} else if nums[mid] \u003c target {\n\t\t\t// 找右邊\n\t\t\tleft = mid + 1\n\t\t} else if nums[mid] \u003e target {\n\t\t\t// 找左邊\n\t\t\tright = mid - 1\n\t\t}\n\t}\n\t// 都沒找到 注意: left越界情況\n\tif left \u003e= lenght || nums[left] != target {\n\t\treturn -1\n\t}\n\treturn left\n}\n\n// 有點類似 nums 大於 target的元素有幾個\nfunc RightBound(nums []int, target int) (index int) {\n\tlenght := len(nums)\n\tif lenght \u003c= 0 {\n\t\treturn -1\n\t}\n\tleft, right := 0, lenght-1\n\n\tfor left \u003c= right {\n\t\t// 除以2\n\t\t// mid := left + (right-left)\u003e\u003e1\n\t\tmid := int(uint(right+left) \u003e\u003e 1)\n\t\tif nums[mid] == target {\n\t\t\t// 注意:要繼續找右邊, 所以把左邊變大=mid+1\n\t\t\tleft = mid + 1\n\t\t} else if nums[mid] \u003c target {\n\t\t\t// 找右邊\n\t\t\tleft = mid + 1\n\t\t} else if nums[mid] \u003e target {\n\t\t\t// 找左邊\n\t\t\tright = mid - 1\n\t\t}\n\t}\n\t// 都沒找到 注意:right越界情況\n\tif right \u003c 0 || nums[right] != target {\n\t\treturn -1\n\t}\n\treturn right\n}\n```\n\n`for left \u003c= right {}`：\n\n* 此方法在迭代終止時，left 和 right 指針指向同一個位置。\n* 此方法會包括最後一個可能的候選解，在某些情況下可能更容易理解和實現。\n* 在應對邊界情況時可能更為方便，例如當 left 和 right 指向同一位置時，這時可能需要進一步處理。\n\n`for left \u003c right {}`：\n\n* 此方法在迭代終止時，left 和 right 指針指向相鄰位置。\n* 此方法會排除最後一個可能的候選解，當要求嚴格小於或大於某個值時可能更合適。\n* 在一些情況下，可能會更高效，因為在每次循環中只需要比較一次 left 和 right，而不需要再處理當兩者相等時的情況。\n```go\nfunc search(nums []int, target int) int {\n    left, right := 0, len(nums)-1\n    \n    for left \u003c right {\n        mid := int(uint(right+left)\u003e\u003e1)\n        if nums[mid]==target{\n            return mid\n        }else if (nums[mid]\u003ctarget){\n            left = mid+1\n        }else{\n            right = mid-1\n        }\n    }\n    if left == right \u0026\u0026 nums[left] == target {\n        return left\n    }\n    return -1\n}\n```\n\n\n| No.                                                                                                                      |                                                                               Title                                                                               |                                                              Solution                                                              | Difficulty | Time                                  | Space                         | Topic         |\n|--------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------:|------------|---------------------------------------|-------------------------------|---------------|\n| [0704](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0704.Binary-Search/)                                           |                                                [704. Binary Search](https://leetcode.com/problems/binary-search/)                                                 |                      [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0704.Binary-Search)                      | Easy       | 最差:O(long n)\u003cbr\u003e 最佳O(1)剛好在中間 | 迭代: O(1) \u003cbr/\u003e 遞迴O(log n) | Binary Search |\n| [0875](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0875.Koko-Eating-Bananas/)                                     |                                    [875. Koko Eating Bananas](https://leetcode.com/problems/koko-eating-bananas/description/)                                     |                   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0875.Koko-Eating-Bananas)                   | Medium     | O（n log m）                          | O(1)                          | Binary Search |\n| [0153](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0153.Find-Minimum-in-Rotated-Sorted-Array/)                    |                   [153. Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/)                    |          [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0153.Find-Minimum-in-Rotated-Sorted-Array)           | Medium     | O(log n）                             | O(1)                          | Binary Search |\n| [0033](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0033.Search-in-Rotated-Sorted-Array/)                          |                         [33. Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/description//)                          |             [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0033.Search-in-Rotated-Sorted-Array)              | Medium     | O(log n）                             | O(1)                          | Binary Search |\n| [0034](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0034.Find-First-and-Last-Position-of-Element-in-Sorted-Array/) | [34. Find First and Last Position of Element in Sorted Array](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/description/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0034.Find-First-and-Last-Position-of-Element-in-Sorted-Array) | Medium     | O(log n）                             | O(1)                          | Binary Search |\n| [0981](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0981.Time-Based-Key-Value-Store/)                              |                             [0981.Time Based Key-Value Store](https://leetcode.com/problems/time-based-key-value-store/description/)                              |               [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0981.Time-Based-Key-Value-Store)                | Medium     | O(log n）                             |                               | Binary Search |\n\n\n---\n#### Minimax\n\n---\n### Graph\n\n#### Graph\n\n---\n\n#### Topological Sort\n\n---\n\n#### Tree\n| No.                                                                                                                       |                                                                               Title                                                                               |                                                               Solution                                                               | Difficulty | Time | Space           | Topic     |\n|---------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------:|------------|------|-----------------|-----------|\n| [0226](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0226.Invert-Binary-Tree)                                        |                                              [Invert Binary Tree](https://leetcode.com/problems/invert-binary-tree/)                                              |                    [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0226.Invert-Binary-Tree)                     | Easy       | O(n) | O(1)            | Tree      |\n| [0104](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0104.Maximum-Depth-of-Binary-Tree/)                             |                             [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree//description/)                              |               [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0104.Maximum-Depth-of-Binary-Tree)                | Easy       | O(n) | O(1)            | Tree      |\n| [0543](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0543.Diameter-of-Binary-Tree)                                   |                                         [Diameter of Binary Tree](https://leetcode.com/problems/diameter-of-binary-tree/)                                         |                  [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0543.Diameter-of-Binary-Tree)                  | Easy       | O(n) | O(n), O(log(n)) | Tree, DFS |\n| [0110](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0110.Balanced-Binary-Tree)                                      |                                            [Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/)                                            |                   [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0110.Balanced-Binary-Tree)                    | Easy       | O(n) | O(1)            | Tree, DFS |\n| [0100](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0100.Same-Tree)                                                 |                                                       [Same Tree](https://leetcode.com/problems/same-tree/)                                                       |                         [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0100.Same-Tree)                         | Easy       | O(n) | O(1)            | Tree      |\n| [0105](https://kimi0230.github.io/LeetcodeGolang/Leetcode/0105.Construct-Binary-Tree-from-Preorder-and-Inorder-Traversal) | [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/description/) | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/Leetcode/0105.Construct-Binary-Tree-from-Preorder-and-Inorder-Traversal) | Medium     | O(n) | O(n)            | Array     |\n\n---\n\n#### Tree Traversal\n\n---\n\n#### Binary Search Tree\n\n---\n#### Compputational Geometry\n\n---\n### Selected Topics\n#### Mathematics\n---\n#### Random\n---\n#### Bitwise Manipulation\n---\n## [GeeksforGeeks](https://www.geeksforgeeks.org/) Content\n|  Topic  |                      Title                       | No.  |                                                                      Solution                                                                      | Difficulty |   TimeComplexity   | SpaceComplexity |\n|:-------:|:------------------------------------------------:|:-----|:--------------------------------------------------------------------------------------------------------------------------------------------------:|:----------:|:------------------:|:---------------:|\n| Sorting | Find Minimum Difference Between Any Two Elements | 0031 | [Go](https://github.com/kimi0230/LeetcodeGolang/tree/master/GeeksforGeeks/SortingAlgorithms/0031.Find-Minimum-Difference-Between-Any-Two-Elements) |   Basic    | O(n^2), O(n log n) |   O(n), O(n)    |\n\n---\n## [Codility](https://app.codility.com/programmers/) Content\n\u003ctable cellspacing=\"1\" cellpadding=\"1\" frame=\"solid\"  align='border_left'\u003e\n    \u003ctr\u003e   \n        \u003cth colspan=\"2\"\u003e  Topic \u003c/th\u003e\n        \u003cth\u003e Title\u003c/th\u003e\n        \u003cth\u003e Solution\u003c/th\u003e\n        \u003cth\u003e Difficulty\u003c/th\u003e\n        \u003cth\u003e TimeComplexity\u003c/th\u003e\n        \u003cth\u003e SpaceComplexity\u003c/th\u003e\n    \u003c/tr\u003e  \n    \u003c!-- lesson 1  --\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e Lesson 1\u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/1-iterations/\"\u003e Iterations \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/1-iterations/binary_gap/\"\u003e Binary Gap \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0001.Iterations/Binary-Gap\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(log n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003c!-- lesson 2  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 2\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/2-array/\"\u003e Array \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/\"\u003e Cyclic Rotation \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0002.Array/CyclicRotation\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/\"\u003e Odd Occurrences In Array \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0002.Array/OddOccurrencesInArray\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n), O(n) \u003c/th\u003e\n        \u003cth\u003e O(n), O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 3  --\u003e\n     \u003ctr\u003e   \n        \u003cth rowspan=\"3\"\u003e Lesson 3\u003c/th\u003e\n        \u003cth rowspan=\"3\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/3-time_complexity/\"\u003e Time Complexity \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/\"\u003e Frog Jmp \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0003.Time-Complexity/FrogJmp\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/\"\u003e Perm Missing Elem \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0003.Time-Complexity/PermMissingElem\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/\"\u003e Tape Equilibrium \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0003.Time-Complexity/TapeEquilibrium\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 4  --\u003e\n     \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 4\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/4-counting_elements/\"\u003e Counting Elements \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/\"\u003e Frog River One \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0004.Counting-Elements/FrogRiverOne\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/\"\u003e Max Counters \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0004.Counting-Elements/MaxCounters\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n+m) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/\"\u003e Missing Integer \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0004.Counting-Elements/MissingInteger\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/4-counting_elements/perm_check/\"\u003e Perm Check \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0004.Counting-Elements/PermCheck\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 5  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 5\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/5-prefix_sums/\"\u003e Prefix Sums \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/5-prefix_sums/count_div/\"\u003e Count Div \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0005.Prefix-Sums/CountDive\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/\"\u003e Genomic Range Query \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0005.Prefix-Sums/GenomicRangeQuery\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n+m) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/\"\u003e MinAvg Two Slice \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0005.Prefix-Sums/MinAvgTwoSlice\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/\"\u003e Passing Cars \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0005.Prefix-Sums/PassingCars\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth \u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 6  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 6\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/6-sorting/\"\u003e Sorting \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/6-sorting/distinct/\"\u003e Distinct \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0006.Sorting/Distinct\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(nlogn) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/6-sorting/max_product_of_three/\"\u003e Max Product of Three \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0006.Sorting/MaxProductOfThree\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(nlogn) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/6-sorting/number_of_disc_intersections/\"\u003e Number Of Disc Intersections \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0006.Sorting/NumberOfDiscIntersections\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(nlogn) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/6-sorting/triangle/\"\u003e Triangle \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0006.Sorting/Triangle\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth \u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(nlogn) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 7  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 7\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/7-stacks_and_queues/\"\u003e Stacks and Queues \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/7-stacks_and_queues/brackets/\"\u003e Brackets \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0007.Stacks-and-Queues/Brackets\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/7-stacks_and_queues/fish/\"\u003e Fish \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0007.Stacks-and-Queues/Fish\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/7-stacks_and_queues/nesting/\"\u003e Nesting \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0007.Stacks-and-Queues/Nesting\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/7-stacks_and_queues/stone_wall/\"\u003e Stone Wall \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0007.Stacks-and-Queues/StoneWall\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth \u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 8  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 8\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/8-leader/\"\u003e Leader \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/8-leader/dominator/\"\u003e Dominator \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0008.Leader/Dominator\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/8-leader/equi_leader/\"\u003e EquiLeader \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0008.Leader/EquiLeader\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 9  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"3\"\u003e Lesson 9\u003c/th\u003e\n        \u003cth rowspan=\"3\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/9-maximum_slice_problem/\"\u003e Maximum slice problem \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_profit/\"\u003e Max Profit \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0009.Maximum-Slice-Problem/MaxProfit\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_slice_sum/\"\u003e Max Slice Sum \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0009.Maximum-Slice-Problem/MaxSliceSum\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_double_slice_sum/\"\u003e Max Double Slice Sum \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0009.Maximum-Slice-Problem/MaxDoubleSliceSum\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 10  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 10\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/\"\u003e Prime and composite numbers \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/count_factors/\"\u003e Count Factors \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0010.Prime-And-Composite-Numbers/CountFactors\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(sqrt(n)) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/flags/\"\u003e Flags \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0010.Prime-And-Composite-Numbers/Flags\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/min_perimeter_rectangle/\"\u003e MinPerimeterRectangle \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0010.Prime-And-Composite-Numbers/MinPerimeterRectangle\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(sqrt(n))) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/10-prime_and_composite_numbers/peaks/\"\u003e Peaks \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0010.Prime-And-Composite-Numbers/Peaks\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O( n*log( log(n) )) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 11  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 11\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/11-sieve_of_eratosthenes/\"\u003e Sieve of Eratosthenes \u003cbr/\u003e (質數篩) \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/11-sieve_of_eratosthenes/count_non_divisible/\"\u003e Count Non Divisible \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0011.Sieve-of-Eratosthenes/CountNonDivisible\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(N * log(N)) \u003c/th\u003e\n        \u003cth\u003e O(n) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/11-sieve_of_eratosthenes/count_semiprimes/\"\u003e Count Semiprimes \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0011.Sieve-of-Eratosthenes/CountSemiprimes\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(N*log(log(N))+M) \u003c/th\u003e\n        \u003cth\u003e O(N+M) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 12  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 12\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/12-euclidean_algorithm/\"\u003e Euclidean algorithm \u003cbr/\u003e (輾轉相除法 or 歐幾里得算法) \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/12-euclidean_algorithm/chocolates_by_numbers/\"\u003e Chocolates By Numbers \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0012.Euclidean-Algorithm/ChocolatesByNumbers\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e O(log(N + M)) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/12-euclidean_algorithm/common_prime_divisors/\"\u003e Common Prime Divisors \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0012.Euclidean-Algorithm/CommonPrimeDivisors\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(Z * log(max(A) + max(B))**2) \u003c/th\u003e\n        \u003cth\u003e O(1) \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 13  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 13\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/13-fibonacci_numbers/\"\u003e Fibonacci numbers \u003cbr/\u003e \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/13-fibonacci_numbers/fib_frog/\"\u003e FibFrog \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"https://github.com/kimi0230/LeetcodeGolang/tree/master/Codility/Lesson/0013.Fibonacci-Numbers/FibFrog\"\u003e Go \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e O(N * log(N)) \u003c/th\u003e\n        \u003cth\u003e O(N) \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/13-fibonacci_numbers/ladder/\"\u003e Ladder \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 14  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 14\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/14-binary_search_algorithm/\"\u003e Binary search algorithm \u003cbr/\u003e \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/14-binary_search_algorithm/min_max_division/\"\u003e MinMaxDivision \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/14-binary_search_algorithm/nailing_planks/\"\u003e NailingPlanks \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 15  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"4\"\u003e Lesson 15\u003c/th\u003e\n        \u003cth rowspan=\"4\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/15-caterpillar_method/\"\u003e Caterpillar method \u003cbr/\u003e \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/15-caterpillar_method/abs_distinct/\"\u003e AbsDistinct \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/15-caterpillar_method/count_distinct_slices/\"\u003e CountDistinctSlices \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/15-caterpillar_method/count_triangles/\"\u003e CountTriangles \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/15-caterpillar_method/min_abs_sum_of_two/\"\u003e MinAbsSumOfTwo \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6;\"\u003e Respectable \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 16  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 16\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/16-greedy_algorithms/\"\u003e Greedy algorithms \u003cbr/\u003e \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/16-greedy_algorithms/max_nonoverlapping_segments/\"\u003e MaxNonoverlappingSegments \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/16-greedy_algorithms/tie_ropes/\"\u003e TieRopes \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e Painless \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c!-- lesson 17  --\u003e\n    \u003ctr\u003e   \n        \u003cth rowspan=\"2\"\u003e Lesson 17\u003c/th\u003e\n        \u003cth rowspan=\"2\"\u003e\n            \u003ca href=\"https://app.codility.com/programmers/lessons/17-dynamic_programming/\"\u003e Dynamic programming \u003cbr/\u003e \u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/17-dynamic_programming/min_abs_sum/\"\u003e MinAbsSum \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#4BA0A5;\" \u003e Ambitious \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e \n    \u003ctr\u003e   \n        \u003cth\u003e \n            \u003ca href=\"https://app.codility.com/programmers/lessons/17-dynamic_programming/number_solitaire/\"\u003e NumberSolitaire \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth\u003e\n            \u003ca href=\"\"\u003e  \u003cbr/\u003e\u003c/a\u003e\n        \u003c/th\u003e\n        \u003cth style=\"color:#5EC0C6\" \u003e Respectable \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n        \u003cth\u003e  \u003c/th\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Reference\n* [leetcode](https://leetcode.com/)\n* [leetcode-cn](https://leetcode-cn.com/)\n* [halfrost](https://books.halfrost.com/leetcode/)\n* [anakin](https://github.com/anakin/golang-leetcode)\n* [wufenggirl](https://github.com/wufenggirl/LeetCode-in-Golang)\n* [GeeksforGeeks](https://www.geeksforgeeks.org/)\n* [Codility](https://app.codility.com/programmers/)\n* [GitHub: labuladong/fucking-algorithm(labuladong 算法小抄)](https://github.com/labuladong/fucking-algorithm)\n* https://cses.fi/\n* https://github.com/neetcode-gh/leetcode\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimi0230%2Fleetcodegolang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkimi0230%2Fleetcodegolang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimi0230%2Fleetcodegolang/lists"}