關于我們
書單推薦
新書推薦
|
玩轉Java 讀者對象:本書可作為程序開發(fā)人員及其他IT從業(yè)者學習和提升算法能力的參考書,也可作為高校計算機相關專業(yè)的教材
本書提供了300個Java案例,針對經(jīng)典算法,基于相關的數(shù)據(jù)結構,將問題描述、問題示例、代碼實現(xiàn)及運行結果相結合進行講解。
1. 內(nèi)容全面:系統(tǒng)介紹了Java編程的各類實例,適合讀者入門到精通。 2. 實用性強:采用案例來編排內(nèi)容,讀者能夠通過實例來掌握編程思想。 3. 資源豐富:配套提供了全書300個例子的源代碼,便于動手實踐舉一反三。 Java語言是國內(nèi)外廣泛使用的計算機程序設計語言,是高等院校相關專業(yè)重要的基礎課程。它具有功能豐富、使用靈活方便、應用面廣、目標程序效率高、可移植性好等優(yōu)點。20世紀90年代以來,Java語言迅速在全世界得到推廣普及,是目前世界上優(yōu)秀的程序設計語言之一。 本書是作者為適應當前教育教學改革的創(chuàng)新要求,更好地踐行語言類課程注重實踐教學與創(chuàng)新能力培養(yǎng)的要求而組織編寫的。本書融合同類圖書的優(yōu)點,采取創(chuàng)新方式,精選300個趣味性、實用性強的應用實例,從不同難度、不同類型和不同數(shù)據(jù)結構對Java語言實際算法進行總結,希望對教育教學起到拋磚引玉的作用。 本書的主要內(nèi)容和素材來自于各大互聯(lián)網(wǎng)公司面試算法、LintCode、LeetCode、九章算法和作者所在學校近幾年承擔的科研項目成果。作者所指導的研究生在研究過程中對學習和應用的算法進行了總結,學生不僅學到了知識,提高了能力,而且為本書提供了第一手素材和相關資料。 本書內(nèi)容由總到分,先提出問題后實踐,將算法描述與代碼實現(xiàn)相結合,可以作為從事網(wǎng)絡開發(fā)和算法實現(xiàn)專業(yè)人員的技術參考書、大學信息與通信工程及相關專業(yè)的本科生的Java算法實現(xiàn)教材、程序員的算法提高手冊,也可以為算法分析、算法設計、算法實現(xiàn)者提供幫助。 本書的編寫得到了教育部電子信息類專業(yè)教學指導委員會、信息工程專業(yè)國家第一類特色專業(yè)建設項目、信息工程專業(yè)國家第二類特色專業(yè)建設項目、教育部CDIO工程教育模式研究與實踐項目、教育部本科教學工程項目、信息工程專業(yè)北京市特色專業(yè)建設、北京市教育教學改革項目和北京郵電大學教育教學改革項目(2022SJJXA01)的大力支持,在此表示感謝! 由于作者經(jīng)驗與水平有限,書中疏漏及不當之處在所難免,衷心希望各位讀者多提寶貴意見,以便再版時進一步修改和完善。
李永華于北京郵電大學 2023年9月
李永華 北京郵電大學教授,博士生導師。擁有超過20年的軟硬件開發(fā)經(jīng)驗,長期致力于物聯(lián)網(wǎng)、云計算與人工智能的教學和科研工作。在教學中,以興趣為導向,激發(fā)學生的創(chuàng)造能力;以素質(zhì)為基礎,提高自身教學水平;以科研為手段,促進教學理念的轉變。在實踐中,提出了“面向系統(tǒng)、虛實結合、立體多維”的高素質(zhì)創(chuàng)新人才培養(yǎng)模式,指導大學生創(chuàng)新案例400余項。在科研中,堅持“以正治學,以奇創(chuàng)新,以實促研”;主持國家級與企事業(yè)單位課題30余項,申請專利50余項,發(fā)表論文100余篇,出版教材專著30余部。
第一篇編 程 入 門 實例001交換數(shù)組中的兩個元素 實例002輸出第幾個質(zhì)數(shù) 實例003求三個數(shù)之中的最大值 實例004字母大小寫的轉換 實例005找出數(shù)組中出現(xiàn)次數(shù)最多的數(shù)字 實例006返回Excel表的列號 實例007返回尾部0的個數(shù) 實例008兩字符串之和 實例009計算質(zhì)數(shù)的個數(shù) 實例010是否包含重復元素 實例0112的冪 實例0124的乘方 實例013添加字符 實例014翻轉字符串1 實例015完全平方數(shù) 實例016有效的字母異位詞 實例017二階階乘 實例018最大數(shù)和最小數(shù) 實例019翻轉數(shù)組 實例020有效的三角形 實例021進制轉換 實例022時間角度 實例023旋轉數(shù)組 實例024判斷一個整數(shù)對應的二進制數(shù)中有多少個1 實例025硬幣擺放 實例026具有交替位的二進制數(shù) 實例027棒球游戲 實例028七進制 實例029英語軟件 實例030重排 實例031不可變的數(shù)組 實例032首字母大寫 實例033單詞間的最短距離 實例034會議室 實例035連續(xù)1的最大個數(shù) 實例036回文排列 實例037最短無序連續(xù)子數(shù)組 實例038兩個列表的最小索引和 實例039合并排序數(shù)組 實例040在二進制表示的整數(shù)中計算置位位數(shù)為質(zhì)數(shù)的個數(shù) 實例041一個月的天數(shù) 實例042構造矩形 實例043尋找下一個更大的數(shù) 實例044鍵盤的一行按鍵輸入的單詞 實例045完美數(shù) 實例046找不同 實例047刪除字符 實例048集合運算 實例049字符串中的單詞數(shù) 實例050路徑總和 實例051回旋鏢的數(shù)量 實例052查找所有數(shù)組中未出現(xiàn)的數(shù)字 實例053使數(shù)組元素相同的最少操作步數(shù) 實例054重復的子串模式 實例055補數(shù) 實例056第三大的數(shù) 實例057轉換為十六進制數(shù) 實例058判斷尾數(shù) 實例059返回數(shù)組中出現(xiàn)奇數(shù)次的元素 實例060翻轉字符串中的元音字母 實例061最高頻率的IP 實例062二分查找 實例063相同數(shù)字 實例064路徑和 實例065生成給定大小的數(shù)組 實例066缺少的子串 實例067鏈表轉換為數(shù)組 實例068簡單計算器 實例069將字符轉換為整數(shù) 實例070數(shù)字轉換問題 實例071尋找最大值 實例072轉換字符串為整數(shù) 實例073旋轉字符數(shù)組 實例074求數(shù)組元素中的最大值 實例075翻轉一個三位整數(shù) 實例076輸出X 實例077判斷數(shù)字與字母 實例078列表轉換 實例079字符串查找 實例080元素和最小的子數(shù)組 實例081有序數(shù)組的平方 實例082撿胡蘿卜 實例083安排面試的城市 實例084延伸字符串 實例085目標移動 實例086飛機座位 實例087輸出序列中出現(xiàn)X次的最大數(shù)字X 實例088旋轉數(shù)字 實例089返回字符串中出現(xiàn)次數(shù)最多的單詞 實例090回文子串 實例091數(shù)組劃分 實例092使指針停在索引0處的方案數(shù) 實例093數(shù)組的最長前綴 實例094最小移動次數(shù) 實例095刪除最少的字符獲得正確格式的字符串 實例096尋找字母 實例097最長子串長度 實例098警報器 實例099數(shù)列求和 實例100最佳利用率 第二篇實 戰(zhàn) 提 高 實例101找出重復的數(shù)字 實例102平衡數(shù) 實例103將字符串變?yōu)榛匚拇? 實例104在二叉查找樹中插入節(jié)點 實例105翻轉ASCII編碼字符串 實例106選票最多的人 實例107最短重復子數(shù)組 實例108移動機器人 實例109二叉搜索樹兩節(jié)點之差的最小值 實例110單調(diào)數(shù)組 實例111最小差值 實例112卡牌分組 實例113翻轉后的字符串(僅翻轉字母) 實例114比較字符串 實例115有效的山形數(shù)組 實例116增減字符串進行匹配 實例117刪除索引序列后排序 實例118十進制數(shù)轉換為二進制數(shù) 實例119統(tǒng)計合法數(shù) 實例120運行時間差值 實例121滿足條件的字符串 實例122數(shù)組中距離最小的數(shù) 實例123變換矩陣 實例124投資結果 實例125增長率最高的股票 實例126鏈表的中間節(jié)點 實例127三維形體投影面積 實例128立方體總表面積 實例129特殊等價字符串組的數(shù)量 實例130二進制流 實例131取數(shù)求和 實例132錢幣數(shù)量之和 實例133判斷字符串能否轉換 實例134轉換大小寫字母 實例135最大的連續(xù)子數(shù)組 實例136鈔票找零 實例137硬幣找零 實例138轉置矩陣 實例139二進制最長距離 實例140葉子相似的二叉樹 實例141行走機器人 實例142最高平均分 實例143求數(shù)組點積 實例144能否到達終點 實例145最接近目標值 實例146字符互換 實例147到最近的人的最大距離 實例148最長子串的長度 實例149較大分組的位置 實例150翻轉圖片 實例151比較含退格的字符串 實例152稱重金幣 實例153k進制加法 實例154字符間最短距離 實例155坐纜車 實例156幸運數(shù)字8 實例157日志排序 實例158查找第n個數(shù)位 實例159查找左葉子節(jié)點值的和 實例160整理字符串格式 實例161檢測大寫字母用法的正確性 實例162查找Kdiff對的數(shù)量 實例163翻轉字符串2 實例164計算二叉樹的直徑長度 實例165學生出勤記錄 實例166二叉樹傾斜程度 實例167重塑矩陣 實例168數(shù)組評分 實例169查找兩棵二叉樹相同結構和節(jié)點值 實例170分糖果 實例171判斷能否種植花 實例172從二叉樹構建字符串 實例173團購商品次數(shù) 實例174合并兩棵二叉樹 實例175二叉樹每層的平均值 實例176尋找數(shù)據(jù)錯誤 實例177構建最大二叉樹 實例178設計平滑器 實例179不下降數(shù)組 實例180輸出二叉樹中次小的節(jié)點 實例181查找最長的單一路徑 實例182計算連續(xù)子串數(shù)量 實例183查找最短連續(xù)子數(shù)組 實例184找到詞典中最長的單詞 實例185尋找數(shù)組的中心索引 實例186判斷托普利茲矩陣 實例187寫入字符串所需的行數(shù) 實例188判斷是否為字符 實例189雷達探測 實例190提取符號和單詞 實例191二叉搜索樹中最接近的值 實例192計算舉重重量 實例193查找最大元素的子數(shù)組 實例194訂單分配 實例195形成字典序最小字符串 實例196矩陣中的最短路徑 實例197查找子數(shù)組和為k的個數(shù) 實例198計算漢明距離 實例199字符串排序 實例200字符串模式 第三篇高 級 編 程 實例201以相反的順序存儲值 實例202找到映射序列 實例203回文數(shù) 實例204兩數(shù)乘積 實例205求最短子數(shù)組長度 實例206統(tǒng)計循環(huán)單詞 實例207猜數(shù)字 實例208字符串之和 實例209尋找不重復的字符 實例210鏡像數(shù)字 實例211檢查字符串縮寫是否匹配 實例212判斷字符串是否同構 實例213判斷矩形是否重疊 實例214尋找最小子樹 實例215二叉樹最長連續(xù)路徑長度 實例216數(shù)字相加 實例217字符計數(shù) 實例218嵌套列表的加權和 實例219計算兩數(shù)組的交集 實例220移動0到數(shù)組尾部 實例221左側填充空格 實例222判斷丑數(shù) 實例223求柱子染色方案 實例224電影推薦 實例225快樂數(shù) 實例226查找數(shù)組中的第二大數(shù) 實例227查找等價二叉樹 實例228判斷對稱二叉樹 實例229判斷完全二叉樹 實例230整數(shù)排序 實例231目標在數(shù)組中出現(xiàn)次數(shù) 實例232排序數(shù)組中最接近目標的元素 實例233尋找目標最后位置 實例234將二叉樹拆解成假鏈表 實例235將鏈表中的節(jié)點兩兩交換 實例236求島嶼的個數(shù) 實例237最后一個單詞的長度 實例238驗證有效數(shù)字 實例239翻轉整數(shù)中的數(shù)字 實例240二進制數(shù)求和 實例241查找最長連續(xù)上升子序列 實例242判斷數(shù)獨是否合法 實例243查找二叉樹的路徑和 實例244計算二進制中有多少個1 實例245切割木棍組成正三角形 實例246查找最大字母 實例247數(shù)組求和 實例248檢查未站隊人數(shù) 實例249劃分鏈表 實例250棋子是否被攻擊 實例251修改字符串 實例252交叉數(shù)組 實例253數(shù)字兩兩配對 實例254數(shù)組去重 實例255序列相交 實例256簡化鏈表 實例257設計數(shù)據(jù)結構存儲數(shù)字 實例258距離最近的城市 實例259統(tǒng)計爬樓梯的方式 實例260查找最大元素和的連續(xù)子數(shù)組 實例261通用子數(shù)組數(shù)量 實例262判斷矩陣斜線上的元素是否相同 實例263判斷是否為子串 實例264計算丟雞蛋次數(shù) 實例265將二叉樹按照層級轉化為鏈表 實例266求方程的根 實例267查找丟失的整數(shù) 實例268交換二進制數(shù)奇偶數(shù)位 實例269分解質(zhì)因數(shù) 實例270求最長回文串的長度 實例271冰雹猜想 實例272在排序鏈表中插入一個節(jié)點 實例273刪除無序鏈表的重復項 實例274用isSubstring函數(shù)判斷字符串的循環(huán)移動 實例275求矩陣的之字形遍歷 實例276將整數(shù)n的二進制表示轉換為整數(shù)m的二進制表示 實例277排序數(shù)組轉換為高度最小的二叉搜索樹 實例278使用插入方式對鏈表進行排序 實例279刪除數(shù)組中相同的數(shù)字 實例280鏈表求和 實例281合并兩個排序鏈表 實例282判斷兩個字符串是否為變位詞 實例283判斷字符串中是否沒有重復字符 實例284合并區(qū)間 實例285實現(xiàn)x的平方根 實例286尋找元素之和為0的子數(shù)組 實例287移動機器人不同路徑的數(shù)量 實例288刪除排序鏈表中的重復元素 實例289判斷兩個輸入流結果是否相等 實例290查找數(shù)字之和為最小的路徑 實例291判斷是否為平衡二叉樹 實例292尋找落單的數(shù)字 實例293查找中位數(shù) 實例294二叉樹的層次遍歷 實例295二叉樹的后序遍歷 實例296二叉樹的中序遍歷 實例297二叉樹的前序遍歷 實例298合并排序整數(shù)數(shù)組 實例299在整數(shù)數(shù)組中找兩數(shù)之和等于給定數(shù)的數(shù) 實例300查找主元素 參考文獻
你還可能感興趣
我要評論
|