Hello 算法 1.2.0 繁体中文 Java 版Hello 演算法 Java 語言版 作者:靳宇棟(@krahets) 程式碼審閱:靳宇棟(@krahets) Release 1.2.0 2024‑12‑06 序 兩年前,我在力扣上分享了“劍指 Offer”系列題解,受到了許多讀者的鼓勵與支持。在與讀者交流期間,我 最常被問到的一個問題是“如何入門演算法”。漸漸地,我對這個問題產生了濃厚的興趣。 兩眼一抹黑地刷題似乎是最受歡迎的方 記錄。需要注意的是,Python 中 range(a, b) 對應的區間是“左閉右開”的,對應的走訪範圍為 ?, ? + 1, … , ? − 1 : // === File: iteration.java === /* for 迴圈 */ int forLoop(int n) { int res = 0; // 迴圈求和 1, 2, ..., n-1, n for (int i = 1; 迴圈中,程式每輪都會先檢查條件,如果條 件為真,則繼續執行,否則就結束迴圈。 下面我們用 while 迴圈來實現求和 1 + 2 + ⋯ + ? : // === File: iteration.java === /* while 迴圈 */ int whileLoop(int n) { int res = 0; int i = 1; // 初始化條件變數 // 迴圈求和 1, 2, .0 码力 | 379 页 | 18.79 MB | 10 月前3
Debian 套件打包教學指南 version 0.292005, 基於 advanced GNU make magic ▶ 文件: /usr/share/doc/cdbs/ ▶ 可支援 Perl, Python, Ruby, GNOME, KDE, Java, Haskell, . . . ▶ 但有些使用者不喜歡使用: ▶ 有時難以產生客製化套件: "makefile以及環境參數相當複雜" ▶ 比明文的 debhelper還慢 (會有許多不必要 dh_*相關的呼叫) (part 6) ▶ Debian Policy https://www.debian.org/doc/debian-policy/ ▶ 所有需求都必須在每個套件中被滿足 ▶ 對於 Perl, Java, Python, . . . 特定的規則 ▶ Ubuntu 打包指南 http://developer.ubuntu.com/resources/tools/packaging/ Debian 63 / 90 實際演練 3: 打包 Java library 1 先看一下如何打包 Java 相關文件: ▶ https://wiki.debian.org/Java ▶ https://wiki.debian.org/Java/Packaging ▶ https://www.debian.org/doc/packaging-manuals/java-policy/ ▶ /usr/sh0 码力 | 90 页 | 691.02 KB | 1 年前3
這些年,我們一起追的Hadoopmonster.supreme@gmail.com 資訊工業策進會 數位教育研究所 資訊技術訓練中心 1 / 74 在 Java SE 與 Java EE 領域有十多 年的講師教學經驗,熟悉 SOAP/RESTful Services、Design Patterns、EJB/JPA 等 Java EE 規 格,Struts/Spring/Hibernate 等 Open Source Framework,與 GlassFish 等 Application Server。 自認為會的技術不多,但是學不會的 也不多,最擅長把老闆交代的工作, 以及找不到老師教的技術,想辦法變 成自己的專長。 目前負責 Java 與 .NET 雲端運算相 關技術的推廣,主要包括 Hadoop Platform 與 NoSQL 等 Big Data 相關 應用,Google App Engine、Microsoft Azure Facebook 做出了 Hive,把 HiveQL 翻成一堆 MapReduce Job Hive 與 Pig 大家都想用 Hadoop 處理 Big Data,但不是每個人都會寫 MapReduce / Java,於是: 32 / 74 Stinger Initiative 緣由: Hortonworks 主導 希望在 Hadoop 從 MapReduce 演化成 Data Processing Platform0 码力 | 74 页 | 45.76 MB | 1 年前3
Comprehensive Rust(繁体中文). 216 37.2.12在 Android 中建構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 37.3 與 Java 的互通性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 38 練習 219 X Chromium 在此基礎上,我們將誠摯邀請您深入探討一或多個專題: • Android:這是半天的課程,會說明如何針對 Android 平台開發作業 (Android 開放原始碼計畫) 使用 Rust,並介紹與 C、C++ 和 Java 的互通性。 • Chromium: a half-day course on using Rust within Chromium based browsers. This includes interoperability specialized topics: Rust in Android Android 中的 Rust 是半天的課程,會說明如何針對 Android 平台開發作業使用 Rust,以及與 C、C++ 和 Java 的互通性。 您 會 需 要 檢 出 (checkout) AOSP (Android 開 放 原 始 碼 專 案)。請 檢 查課 程 存 放 區上 相 同 的 機 器,並將 src/android/0 码力 | 358 页 | 1.41 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 C# 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有 ‧ C 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Dart 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有 ‧ C 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 378 页 | 18.77 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Go 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 第 2 章 複雜度分析 www.hello‑algo ‧ C 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 385 页 | 18.80 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Kotlin 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有 ‧ C 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 382 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 JavaScript 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有 但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 第 2 章 複雜度分析 www.hello‑algo.com 50 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 379 页 | 18.78 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 TypeScript 版)、?(?)、?(?2) 和 ?(2?) 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有 但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 第 2 章 複雜度分析 www.hello‑algo.com 50 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序 位元組(byte)由 8 位元(bit)組成。 基本資料型別的取值範圍取決於其佔用的空間大小。下面以 Java 為例。 ‧ 整數型別 byte 佔用 1 位元組 = 8 位元,可以表示 28 個數字。 ‧ 整數型別 int 佔用 4 位元組 = 32 位元,可以表示 232 個數字。 表 3‑1 列舉了 Java 中各種基本資料型別的佔用空間、取值範圍和預設值。此表格無須死記硬背,大致理解即 可,需要時可以透過查表來回憶。0 码力 | 384 页 | 18.80 MB | 10 月前3
共 27 条
- 1
- 2
- 3













