原创 劍指 Offer 66. 構建乘積數組

題目: 劍指 Offer 66. 構建乘積數組 題解: 1. 題解一:左右數組 解釋一: 解釋二: 2. 題解二:左(或右)數組 解釋一: 解釋二: 代碼: 1. 代碼一:左右數組 public class

原创 劍指 Offer 64. 求1+2+…+n

題目: 劍指 Offer 64. 求1+2+…+n 題解: 解釋一: 解釋二: 代碼: public class 面試題64 { public int res = 0; public

原创 劍指 Offer 68 - I. 二叉搜索樹的最近公共祖先

題目: 劍指 Offer 68 - I. 二叉搜索樹的最近公共祖先 235. 二叉搜索樹的最近公共祖先 題解: 1. 題解一:迭代 2. 題解二:遞歸 代碼: 1. 代碼一:迭代 public class 面試

原创 劍指 Offer 65. 不用加減乘除做加法

題目: 劍指 Offer 65. 不用加減乘除做加法 題解: 代碼: 1. 代碼一:迭代 public class 面試題65 { // 方法1:迭代 public static int add(in

原创 劍指 Offer 61. 撲克牌中的順子

題目: 劍指 Offer 61. 撲克牌中的順子 題解: 注意:大小王屬於癩子牌 1. 題解一:不排序方式 2. 題解二:排序方式 代碼: 1. 代碼一:不排序方式 import java.util.*; p

原创 劍指 Offer 62. 圓圈中最後剩下的數字(約瑟夫環問題)

題目: 劍指 Offer 62. 圓圈中最後剩下的數字 題解:約瑟夫環問題 1. 題解一:模擬鏈表,O(n²) 2. 題解二:數學解法,O(n) 代碼: 1. 代碼一:模擬鏈表,O(n²) import ja

原创 劍指 Offer 60. n個骰子的點數

題目: 劍指 Offer 60. n個骰子的點數 題解: 點數之和: 概率: 1. 解釋一: 2. 解釋二: 3. 疑難點: 代碼: 注意: 時間複雜度:O(n * 5n * 6) == O(30 * n²)

原创 劍指 Offer 59 - I. 滑動窗口的最大值

題目: 劍指 Offer 59 - I. 滑動窗口的最大值 239. 滑動窗口最大值 題解: 1. 題解一:暴力法 2. 題解二:單調雙向隊列 1. 解釋一: 注意:LinkedList存儲的是數組的下標(索引)。

原创 面試題43. 1~n整數中1出現的次數

題目: 面試題43. 1~n整數中1出現的次數 233. 數字 1 的個數 題解: 代碼: public class 面試題43 { public static int countDigitOne(i

原创 從n個數中選取m個數的所有組合

題目: n個數1,2,...,n,從這n個數中任意選m個數,輸出所有不同組合,共有C(n,m)種不同組合。 如n=4,m=2,會產生如下輸出: 1 2 1 3 2 3 1 4 2 4 3 4 如n=5,m=3,會

原创 多線程生產者消費者模型

1. 基礎知識: 1. 什麼是生產者-消費者模式: 比如有兩個進程A和B,它們共享一個固定大小的緩衝區,A進程產生數據放入緩衝區,B進程從緩衝區中取出數據進行計算,那麼這裏其實就是一個生產者和消費者的模式,A相當於生產者,B相當於

原创 Linux命令大全(持續更新中)

參考: 1. Linux命令大全 2. 每天一個linux命令目錄 3. Linux 命令大全 4. Linux命令大全搜索工具 5. Linux命令大全-簡書 6. Linux命令在線搜索 7. 看完這篇Linux基本的操作就會

原创 Python常見知識點總結

1. Python 使用全局變量 2. Python中單引號,雙引號,3個單引號及3個雙引號的區別 3. python中// 和/有什麼區別 4. python3中,os.path模塊下常用的用法總結 import os ,os.

原创 4.20日阿里筆試

題目: 勇士打怪獸 題解: 總體思路: 從小到大排序,遇到能打過的+1,遇到打不過的升級,記錄金幣的最大值。 具體思路: 1. 先對所有怪獸的能力值數組進行排序,從弱的開始打; 2. 遍歷排序後的所有怪獸,如果能力值夠打,就

原创 面試題31. 棧的壓入、彈出序列

題目: 面試題31. 棧的壓入、彈出序列 946. 驗證棧序列 題解: 代碼: import java.util.*; public class 面試題31 { public static boolean