 多雲一體就是現在:
GOOGLE CLOUD 的
KUBERNETES
混合雲戰略KUBERNETES 混合雲戰略 安玟宇 Wayne An Customer Engineer, Google Cloud WayneAn@google.com 安玟宇 Wayne An Customer Engineer, Google Cloud WayneAn@google.com 多雲一體就是現在: Google Cloud 的 Kubernetes 混合雲戰略 分散一切 分散一切 的世界即將來臨 #容器化 / #分散式 / #微服務 #混合雲 / #新世代開發監控工具 # Cloud Native 使命 Meet customers where they are and partner with them in their transformation to cloud native Rigid Manual Expensive Infrastructure 客製化高擴展性硬體設計 Live migration背景更新 全球機房備援設計 台灣區已經備有三個容錯區域 高效能代管式服務 涵蓋Web/App/DB皆有多 樣化代管服務可以組合出 最適架構 自動化部署 與開放平台以及開發環境 整合,加速應用上線 Google Cloud Taiwan 優勢 Google Infrastructure event driven functions web0 码力 | 32 页 | 2.77 MB | 1 年前3 多雲一體就是現在:
GOOGLE CLOUD 的
KUBERNETES
混合雲戰略KUBERNETES 混合雲戰略 安玟宇 Wayne An Customer Engineer, Google Cloud WayneAn@google.com 安玟宇 Wayne An Customer Engineer, Google Cloud WayneAn@google.com 多雲一體就是現在: Google Cloud 的 Kubernetes 混合雲戰略 分散一切 分散一切 的世界即將來臨 #容器化 / #分散式 / #微服務 #混合雲 / #新世代開發監控工具 # Cloud Native 使命 Meet customers where they are and partner with them in their transformation to cloud native Rigid Manual Expensive Infrastructure 客製化高擴展性硬體設計 Live migration背景更新 全球機房備援設計 台灣區已經備有三個容錯區域 高效能代管式服務 涵蓋Web/App/DB皆有多 樣化代管服務可以組合出 最適架構 自動化部署 與開放平台以及開發環境 整合,加速應用上線 Google Cloud Taiwan 優勢 Google Infrastructure event driven functions web0 码力 | 32 页 | 2.77 MB | 1 年前3
 Argo CD 搭配 Kustomize
實作 GitOps 部署 周育緯GitOps 部署 周育緯 1 About me •III DevOps contributor •8 年 System, DevOps 與 Backend 開發與 維護經驗 •資展國際、工研院: Kubernetes, DevOps 講師 2 GitOps •雲原生 Continuous Deployment •所有部署都使用聲明式(declarative)腳本 •所有部署環境yaml皆存放至Git repostiroy來進行觸發 •需確保環境與Git上的腳本為一致 4 GitOps優點 •可以經由git commit history來紀錄環境從 部署至今所有狀態 5 你有遇到過 •一個App deployment yaml檔該如何部署 出多套環境給不同情境(e.g. dev, staging, testing, pre-prod, prod)嗎? •如果各個環境有需要設定不同的參數呢? overlay/development | kubectl apply -f - 20 部署出dev deployment and service env 21 Argo CD 22 •A declarative, GitOps continuous delivery tool for Kubernetes 用ArgoCD 搭配kustomize來部署環境ㄌ 23 歡迎大家參考 III DevOps 更多詳細教學影音,請觀看我們的0 码力 | 24 页 | 696.06 KB | 1 年前3 Argo CD 搭配 Kustomize
實作 GitOps 部署 周育緯GitOps 部署 周育緯 1 About me •III DevOps contributor •8 年 System, DevOps 與 Backend 開發與 維護經驗 •資展國際、工研院: Kubernetes, DevOps 講師 2 GitOps •雲原生 Continuous Deployment •所有部署都使用聲明式(declarative)腳本 •所有部署環境yaml皆存放至Git repostiroy來進行觸發 •需確保環境與Git上的腳本為一致 4 GitOps優點 •可以經由git commit history來紀錄環境從 部署至今所有狀態 5 你有遇到過 •一個App deployment yaml檔該如何部署 出多套環境給不同情境(e.g. dev, staging, testing, pre-prod, prod)嗎? •如果各個環境有需要設定不同的參數呢? overlay/development | kubectl apply -f - 20 部署出dev deployment and service env 21 Argo CD 22 •A declarative, GitOps continuous delivery tool for Kubernetes 用ArgoCD 搭配kustomize來部署環境ㄌ 23 歡迎大家參考 III DevOps 更多詳細教學影音,請觀看我們的0 码力 | 24 页 | 696.06 KB | 1 年前3
 使⽤Laravel 8
PHP主流框架打造
RESTful APIVictor 王盛立 鐵⼈賽書籍作者 歡迎將 講者照片 裁成圓形 置於此處 使⽤Laravel 8 PHP主流框架打造 RESTful API ⾃我介紹 • 王盛立 • 出版過⼀本 使⽤Laravel 8 PHP主流框架打造RESTful API(iT邦幫忙鐵⼈賽系列書) • 浪浪的事 Side Project https://langlangthing.com/ 今⽇菜單0 码力 | 22 页 | 3.41 MB | 1 年前3 使⽤Laravel 8
PHP主流框架打造
RESTful APIVictor 王盛立 鐵⼈賽書籍作者 歡迎將 講者照片 裁成圓形 置於此處 使⽤Laravel 8 PHP主流框架打造 RESTful API ⾃我介紹 • 王盛立 • 出版過⼀本 使⽤Laravel 8 PHP主流框架打造RESTful API(iT邦幫忙鐵⼈賽系列書) • 浪浪的事 Side Project https://langlangthing.com/ 今⽇菜單0 码力 | 22 页 | 3.41 MB | 1 年前3
 快快樂樂學會 Angular 2 網站開發框架Angular 2 網站開發框架 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/ 適用 Angular 2.0.0-rc.5 版本 我們所認識的前端技術都是假的 千萬不要執著你之前學會的任何技術 忘掉一切的業障 才有重生的機會 今天我們要來 重新認識 Angular 2 開發框架 記得:今天是來消除業障的! 記得:今天是來消除業障的! ANGULAR 2 簡介 Angular 2 Introduction Angular 2 從框架轉向平台 10 前端工程的夢幻逸品:Angular 2 開發框架介紹 Angular 2 比 Angular 1 更好 • 速度更快 – 偵測變更:比 ng1 快 10 倍 – 渲染速度:比 ng1 快 5 倍 (Render & Re-render) • 範本編譯:支援 Template YouTube • TypeScript - JavaScript that scales. • TypeScript Handbook (中文版) • 前端工程的夢幻逸品:Angular 2 開發框架介紹 • Angular 2 Fundamentals | AngularClass (免費 ng2 課程) 聯絡資訊 • The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享0 码力 | 38 页 | 1.12 MB | 1 年前3 快快樂樂學會 Angular 2 網站開發框架Angular 2 網站開發框架 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/ 適用 Angular 2.0.0-rc.5 版本 我們所認識的前端技術都是假的 千萬不要執著你之前學會的任何技術 忘掉一切的業障 才有重生的機會 今天我們要來 重新認識 Angular 2 開發框架 記得:今天是來消除業障的! 記得:今天是來消除業障的! ANGULAR 2 簡介 Angular 2 Introduction Angular 2 從框架轉向平台 10 前端工程的夢幻逸品:Angular 2 開發框架介紹 Angular 2 比 Angular 1 更好 • 速度更快 – 偵測變更:比 ng1 快 10 倍 – 渲染速度:比 ng1 快 5 倍 (Render & Re-render) • 範本編譯:支援 Template YouTube • TypeScript - JavaScript that scales. • TypeScript Handbook (中文版) • 前端工程的夢幻逸品:Angular 2 開發框架介紹 • Angular 2 Fundamentals | AngularClass (免費 ng2 課程) 聯絡資訊 • The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享0 码力 | 38 页 | 1.12 MB | 1 年前3
 Kubernetes平台比較:Red Hat
OpenShift、SUSE Rancher及
Canonical KubernetesKubernetes、Red Hat Openshift及SUSE Rancher都已獲得CNCF認證。 2. 生命週期作業 開始踏上Kubernetes的旅程時,如果沒有思考要如何長期維護叢集,很容易就會 在開發和部署期間遭遇困難。許多以Kubernetes為中心的解決方案,雖然處理了 Kubernetes生命週期的初期階段,也就是第0天和第1天,但真正的挑戰要到第2 天才開始。 就第2天作業而言,Canonical 生命週期自動化。不過OpenShift運算子大多設計為隔離作業,而Canonical Kubernetes運算子則可共同組合,提供高度複雜的應用程式及服務。Canonical Kubernetes是以Juju部署,設計時將運算子列入考量,因此能夠更輕鬆解決維護和 升級等長期挑戰。 Rancher支援上游運算子,但無法在開箱後立即提供與Canonical Kubernetes或 OpenShift相同程度的生命週期自動化。 此能夠完全升級叢集, 同時確保不會影響在叢集執行的工作負載。 2 5. 支援生命週期 有時候企業無法跟上最新的上游Kubernetes版本,未能完全保持最新狀態。為了 確保Kubernetes部署維持安全,必須瞭解廠商支援各個版本的時間長度。 OpenShift支援最新的3個次要Kubernetes版本,支援各個版本的時間總計9個月。 在前3個月期間,特定版本會獲得「完整支援」,緊急修復一旦可用就會發行提供,0 码力 | 10 页 | 1.26 MB | 1 年前3 Kubernetes平台比較:Red Hat
OpenShift、SUSE Rancher及
Canonical KubernetesKubernetes、Red Hat Openshift及SUSE Rancher都已獲得CNCF認證。 2. 生命週期作業 開始踏上Kubernetes的旅程時,如果沒有思考要如何長期維護叢集,很容易就會 在開發和部署期間遭遇困難。許多以Kubernetes為中心的解決方案,雖然處理了 Kubernetes生命週期的初期階段,也就是第0天和第1天,但真正的挑戰要到第2 天才開始。 就第2天作業而言,Canonical 生命週期自動化。不過OpenShift運算子大多設計為隔離作業,而Canonical Kubernetes運算子則可共同組合,提供高度複雜的應用程式及服務。Canonical Kubernetes是以Juju部署,設計時將運算子列入考量,因此能夠更輕鬆解決維護和 升級等長期挑戰。 Rancher支援上游運算子,但無法在開箱後立即提供與Canonical Kubernetes或 OpenShift相同程度的生命週期自動化。 此能夠完全升級叢集, 同時確保不會影響在叢集執行的工作負載。 2 5. 支援生命週期 有時候企業無法跟上最新的上游Kubernetes版本,未能完全保持最新狀態。為了 確保Kubernetes部署維持安全,必須瞭解廠商支援各個版本的時間長度。 OpenShift支援最新的3個次要Kubernetes版本,支援各個版本的時間總計9個月。 在前3個月期間,特定版本會獲得「完整支援」,緊急修復一旦可用就會發行提供,0 码力 | 10 页 | 1.26 MB | 1 年前3
 Comprehensive Rust(繁体中文). 192 34.1.4 AIDL 伺服器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 34.1.5 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.6 AIDL 用戶端 . . . 2018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself 編譯器檢查 (Lint) 和 Clippy 3 minutes 盧恩演算法 30 minutes 27.1 單元測試 Rust 和 Cargo 提供了一個簡單的單元測試 (unit test) 框架: • 在你的程式碼的任何地方都可添加單元測試。 • 整合測試 (integration test) 則可放置在 tests/ 資料夾下。 測試會以 #[test] 標示。單元測試通常會位於巢狀的0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文). 192 34.1.4 AIDL 伺服器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 34.1.5 部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 34.1.6 AIDL 用戶端 . . . 2018。 – 這些版本可針對語言進行回溯不相容的變更。 – 為避免破壞程式碼,版本皆為自行選擇採用:您可以透過 Cargo.toml 檔案選擇所需版本。 – 為避免分割生態系統,Rust 編譯器可混合寫給不同版本的程式碼。 – 請說明很少會略過 cargo 直接使用編譯器,大部分使用者都不會這麼做。 – It might be worth alluding that Cargo itself 編譯器檢查 (Lint) 和 Clippy 3 minutes 盧恩演算法 30 minutes 27.1 單元測試 Rust 和 Cargo 提供了一個簡單的單元測試 (unit test) 框架: • 在你的程式碼的任何地方都可添加單元測試。 • 整合測試 (integration test) 則可放置在 tests/ 資料夾下。 測試會以 #[test] 標示。單元測試通常會位於巢狀的0 码力 | 358 页 | 1.41 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 C# 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 278 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ void Backtrack(State state, List0 码力 | 379 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 C# 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 278 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ void Backtrack(State state, List0 码力 | 379 页 | 18.79 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Dart 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 支,避免許多無意義的嘗試,從而提高了搜尋效率。 圖 13‑3 根據約束條件剪枝 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ void backtrack(State state, List0 码力 | 378 页 | 18.77 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Dart 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 支,避免許多無意義的嘗試,從而提高了搜尋效率。 圖 13‑3 根據約束條件剪枝 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ void backtrack(State state, List0 码力 | 378 页 | 18.77 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Go 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 282 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ func backtrack(state *State, choices []Choice0 码力 | 385 页 | 18.80 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Go 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 282 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ func backtrack(state *State, choices []Choice0 码力 | 385 页 | 18.80 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Kotlin 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 280 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ fun backtrack(state: State?, choices: List0 码力 | 382 页 | 18.79 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Kotlin 版曲線”來 複習題目,通常在進行 3~5 輪的重複後,就能將其牢記在心。推薦的題單和刷題計劃請見此 GitHub 倉庫。 3. 階段三:搭建知識體系。在學習方面,我們可以閱讀演算法專欄文章、解題框架和演算法教材,以不斷 豐富知識體系。在刷題方面,可以嘗試採用進階刷題策略,如按專題分類、一題多解、一解多題等,相 關的刷題心得可以在各個社群找到。 如圖 0‑8 所示,本書內容主要涵蓋“階段一 般無法僅憑複雜度來選擇 ? = 8 之下的最優解法。但對於 ? = 85 就很好選了,這時增長趨勢已經佔主導了。 51 第 3 章 資料結構 Abstract 資料結構如同一副穩固而多樣的框架。 它為資料的有序組織提供了藍圖,演算法得以在此基礎上生動起來。 第 3 章 資料結構 www.hello‑algo.com 52 3.1 資料結構分類 常見的資料結構包括陣列、鏈結串列、堆 根據約束條件剪枝 第 13 章 回溯 www.hello‑algo.com 280 13.1.3 框架程式碼 接下來,我們嘗試將回溯的“嘗試、回退、剪枝”的主體框架提煉出來,提升程式碼的通用性。 在以下框架程式碼中,state 表示問題的當前狀態,choices 表示當前狀態下可以做出的選擇: /* 回溯演算法框架 */ fun backtrack(state: State?, choices: List0 码力 | 382 页 | 18.79 MB | 10 月前3
共 33 条
- 1
- 2
- 3
- 4













