Hello 算法 1.2.0 繁体中文 C# 版
Hello 演算法 C# 語言版 作者:靳宇棟(@krahets) 程式碼審閱:@hpstory Release 1.2.0 2024‑12‑06 序 兩年前,我在力扣上分享了“劍指 Offer”系列題解,受到了許多讀者的鼓勵與支持。在與讀者交流期間,我 最常被問到的一個問題是“如何入門演算法”。漸漸地,我對這個問題產生了濃厚的興趣。 兩眼一抹黑地刷題似乎是最受歡迎的方法,簡單、直接 等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計(0 码力 | 379 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Dart 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 378 页 | 18.77 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Go 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 第 2 章 複雜度分析 www.hello‑algo.com 50 函式(func 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 385 页 | 18.80 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Kotlin 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 382 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Java 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 379 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 JavaScript 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 第 2 章 複雜度分析 www.hello‑algo.com 50 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 379 页 | 18.78 MB | 10 月前3Hello 算法 1.2.0 繁体中文 TypeScript 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 第 2 章 複雜度分析 www.hello‑algo.com 50 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 384 页 | 18.80 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Swift 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 379 页 | 18.79 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Ruby 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 語言是程序式程式設計語言,沒有物件導向的概念,所以只有函式。但我們可以透過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 372 页 | 18.75 MB | 10 月前3Hello 算法 1.2.0 繁体中文 Python 版
等。 2. Q & A Q:尾遞迴的空間複雜度是 ?(1) 嗎? 理論上,尾遞迴函式的空間複雜度可以最佳化至 ?(1) 。不過絕大多數程式語言(例如 Java、Python、C++、 Go、C# 等)不支持自動最佳化尾遞迴,因此通常認為空間複雜度是 ?(?) 。 Q:函式和方法這兩個術語的區別是什麼? 函式(function)可以被獨立執行,所有參數都以顯式傳遞。方法(method)與一個物件關聯,被隱式傳遞給 過建立結構體 (struct)來模擬物件導向程式設計,與結構體相關聯的函式就相當於其他程式語言中的方法。 第 2 章 複雜度分析 www.hello‑algo.com 48 ‧ Java 和 C# 是物件導向的程式語言,程式碼塊(方法)通常作為某個類別的一部分。靜態方法的行為類 似於函式,因為它被繫結在類別上,不能訪問特定的例項變數。 ‧ C++ 和 Python 既支持程序式程式設計( 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 語言時,Unicode 還處於發展早期,那時候使用 16 位的編碼就足以表示所有的 Unicode 字元了。 ‧ C# 使用 UTF‑16 編碼,主要是因為.NET 平臺是由 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於0 码力 | 364 页 | 18.74 MB | 10 月前3
共 24 条
- 1
- 2
- 3