●例1完美平方 例2判斷平方數 例3檢測2的冪次 例4求平方根 例5x的n次冪 例6快速冪 例7四數乘積 例8將整數A轉換為B 例9羅馬數字轉換為整數 例10整數轉換為羅馬數字 例11整數排序 例12整數替換 例13兩個整數相除 例14整數加法 例15合並數字 例16數字判斷 例17下一個稀疏數 例18滑動窗口的優選值 例19創建優選數 例20最接近的k個數 例21交錯正負數 例22下一個更大的數 例23落單的數Ⅰ 例24落單的數Ⅱ 例25落單的數Ⅲ 例26落單的數Ⅳ 例27對稱數 例28鏡像數字 例29統計比給定整數小的數 例30統計前面比自己小的數 例31階乘尾部零的個數 例32統計數字 例33刪除數字 例34尋找丟失的數 例35丑數Ⅰ 例36丑數Ⅱ 例37超級丑數 例38兩數之和Ⅰ 例39兩數之和Ⅱ 例40兩數之和Ⅲ 例41最接近的三數之和 例42三數之和為零 例43四數之和為定值 例44骰子求和 例45k數之和 例46二進制求和 例47各位相加 例4素ZigZag返回 例49子矩陣和為零 例50搜索二維矩陣Ⅰ 例51搜索二維矩陣Ⅱ 例52矩陣歸零 例53DNA重復問題 例54螺旋矩陣 例55矩陣走路問題 例56稀疏矩陣乘法 例57直方圖中優選的矩形面積 例58優選矩形 例59排序矩陣中的從小到大第k個數 例60優選和子數組 例61兩個不重疊子數組優選和 例62k個不重疊子數組優選和 例63兩個不重疊的子數組優選差 例64兩數組的交集Ⅰ 例65兩數組的交集Ⅱ 例66乘積小於k的子數組 例67最小和子數組 例68連續子數組優選和 例69子數組之和為零 例70數組劃分 例71數組中的kdiff對的數量 例72刪除排序數組中的重復數字 例73和大於定值的最小長度子數組 例74優選平均值子數組 例75搜索旋轉排序數組中的最小值Ⅰ 例76搜索旋轉排序數組中的最小值Ⅱ 例77搜索旋轉排序數組目標值Ⅰ 例78搜索旋轉排序數組目標值Ⅱ 例79和最接近零的子數組 例80兩個整數數組的最小差 例81數組中的相同數字 例82翻轉數組 例83奇偶分割數組 例84判斷字符串中的重復字符 例85最長無重復字符的子字符串 例86最長回文子字符串 例87將字符串轉換為整數 例88字符串查找 例89子字符串的判斷 例90翻轉字符串中的單詞 例91亂序字符串 例92比較字符串 例93攀爬字符串 例94交叉字符串 例95字符串解碼 例96最小子字符串覆蓋 例97連接兩個字符串中的不同字符 例98字符串加法 例99字符串乘法 例100前k個偶數長度的回文數之和 例101分割回文串Ⅰ 例102分割回文串Ⅱ 例103回文排列Ⅰ 例104回文排列Ⅱ 例105回文鏈表 例106有效回文串 例107回文對 例108字模式 例109k組翻轉鏈表 例110刪除排序鏈表中素Ⅰ 例111刪除排序鏈表中素Ⅱ 例112鏈表劃分 例113翻轉鏈表Ⅰ 例114翻轉鏈表Ⅱ 例115旋轉鏈表 例116兩兩交換鏈表中的節點 例117刪除鏈素 例118重排鏈表 例119鏈表插入排序 例120合並k個排序鏈表 例121帶環鏈表 例122帶環鏈表轉換 例123刪除鏈表中倒數第n個節點 例124鏈表排序 例125加1鏈表 例126交換鏈表中的兩個節點 例127線段樹的修改 例128線段樹的構造Ⅰ 例129線段樹的構造Ⅱ 例130線段樹查詢Ⅰ 例131線段樹查詢Ⅱ 例132是否為子樹 例133最小子樹 例134具有優選平均數的子樹 例135二叉搜索樹中最接近的值 例136二叉搜索樹中插入節點 例137二叉搜索樹中刪除節點 例138二叉搜索樹轉化成更大的樹 例139二叉搜索樹的搜索區間 例140二叉搜索樹的中序後繼 例141二叉搜索樹兩數之和 例142裁剪二叉搜索樹 例143統計完全二叉樹節點數 例144二叉搜索樹迭代器 例145翻轉二叉樹 例146相同二叉樹 例147前序遍歷樹和中序遍歷樹構造二叉樹 例148二叉樹的後序遍歷 例149二叉樹的所有路徑 例150中序遍歷樹和後序遍歷樹構造二叉樹 例151二叉樹的序列化和反序列化 例152二叉樹的層次遍歷Ⅰ 例153二叉樹的層次遍歷Ⅱ 例154二叉樹的鋸齒形層次遍歷 例155尋找二叉樹葉子節點 例156平衡二叉樹 例157二叉樹中的優選路徑和 例158驗證二叉查找樹 例159二叉樹的優選深度 例160二叉樹的前序遍歷 例161二叉樹的中序遍歷 例162將排序列表轉換成二叉搜索樹 例163二叉樹的最小深度 例164不同的二叉搜索樹 例165將二叉樹拆成鏈表 例166排序數組轉為高度最小二叉搜索樹 例167最近二叉搜索樹值Ⅰ 例168最近二叉搜索樹值Ⅱ 例169買賣股票的最佳時機Ⅰ 例170買賣股票的最佳時機Ⅱ 例171買賣股票的最佳時機Ⅲ 例1素Ⅰ 例1素Ⅱ 例174素 例175滑動窗口素數量和 例176單詞拆分Ⅰ 例177單詞拆分Ⅱ 例178單詞矩陣 例179單詞搜索 例180單詞接龍Ⅰ 例181單詞接龍Ⅱ 例182包含所有單詞連接的子串 例183最後一個單詞的長度 例184電話號碼的字母組合 例185會議室Ⅰ 例186會議室Ⅱ 例187區間最小數 例188搜索區間 例189無重疊區間 例190區間合並 例191區間求和Ⅰ 例192區間求和Ⅱ 例193是否為子序列 例194最長上升子序列 例195有效的括號序列 例196對稱樹 例197圖是否為樹 例198表達樹的構造 例199表達式求值 例200逆波蘭表達式求值 例201將表達式轉換為逆波蘭表達式 例202最長公共子序列 例203乘積優選子序列 例204最長上升連續子序列 例205序列重構 例206不同的子序列 例207跳躍遊戲Ⅰ 例208跳躍遊戲Ⅱ 例209翻轉遊戲 例210棒球遊戲 例211中位數 例212滑動窗口的中位數 例213數據流中位數 例214兩個排序數組的中位數 例215打劫房屋Ⅰ 例216打劫房屋Ⅱ 例217子集Ⅰ 例218子集Ⅱ 例219迷宮Ⅰ 例220迷宮Ⅱ 例221迷宮Ⅲ 例222迷宮Ⅳ 例223數字組合Ⅰ 例224數字組合Ⅱ 例225數字組合Ⅲ 例226擺動排序問題 例227多關鍵字排序 例228排顏色 例229顏色分類 例230簡化路徑 例231不同的路徑Ⅰ 例232不同的路徑Ⅱ 例233換硬幣 例234硬幣擺放 例235硬幣排成線Ⅰ 例236硬幣排成線Ⅱ 例237搜索插入位置 例238俄羅斯套娃信封 例239包裹黑色像素點的最小矩形 例240薪水調整 例241木材加工 例242判斷數獨是否合法 例243移除多餘字符 例2式解析器 例245符號串生成器 例246用棧實現隊列 例247用棧模擬漢諾塔問題 例248帶最小值操作的棧 例249恢復旋轉排序數組問題 例250移動零問題 例251丟失的間隔問題 例252三個數的優選乘積 例253用循環數組來實現隊列 例254尋找數據錯誤 例255數據流中個獨特數 例256數據流中個唯一的數字 例257二進制中有多少個1 例258找到映射序列 例259旋轉圖像 例260相反的順序存儲 例261太平洋和大西洋的水流 例262不同島嶼的個數 例263島的周長問題 例264數字三角形 例265優選正方形 例266優選關聯集合 例267合並k個排序間隔列表 例268合並賬戶 例269集合合並 例270快樂數判斷 例271最多有多少個點在一條直線上 例272尋找峰值 例273電燈切換 例274第k個質數 例275最小調整代價 例276背包問題 例277爬樓梯 例278被圍繞的區域 例279編輯距離 例280優選間距 例281堆化操作 例282外輪廓線 例283格雷編碼 例284能否到達終點 例285恢復IP地址 例286斐波納契數列 例287最長公共前綴 例288解碼方法 例289吹氣球 例290生成括號 例291正則表達式匹配 例292分割標簽 例293裝最多水的容器 例294接雨水 例295加油站 例296分糖果 例297建立郵局 例298尋找最便宜的航行旅途 例299UTF8編碼檢查 例300哈希函數
內容簡介
本書以人工智能發展為時代背景,通過實際案例應用描述算法,提供了較為詳細的實戰方案,以便深度學習。 本書內容從算法上分為數學、搜索、回溯、遞歸、排序、迭代、貪心、分治和動態規劃等; 從數據結構上分為字符串、數組、指針、區間、隊列、矩陣、堆棧、鏈表、哈希表、線段樹、二叉樹、二叉搜索樹和圖結構等。本書針對經典算法,結合相關的數據結構,將描述問題、問題示例、代碼實現以及運行結果相結合,語言簡潔,深入淺出,通俗易懂,不僅適合對Python編程有興趣的科研人員,也適合作為高等院校的參考教材。
Python是國內外廣泛使用的計算機程序設計語言,是高等院校相關專業重要的基礎語言課程。由於Python語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好等許多特點,20世紀90年代以來,Python語言迅速在全世界普及推廣。目前,Python仍然是全世界最優秀的程序設計語言之一。 本書是為適應當前教育教學改革的創新要求,更好地踐行語言類課程,注重實踐教學與創新能力培養的需要,組織編寫的教材。本書融合了同類教材的優點,采取了創新方式,精選了300個趣味性、實用性強的應用實例,從不同難度、不同算法、不同類型和不同數據結構,將實際算法進行總結,希望對教育教學及工業界起到拋磚引玉的作用。 本書的主要內容和素材來自網絡流行的各大互聯網公司面試算法、LintCode、Leetcode、九章算法和作者所在學校近幾年承擔的科研項目成果。作者所指導的研究生,在研究過程中對學習......
"