新書推薦:
《
梦醒子:一位华北乡居者的人生(1857—1942))(第2版)
》
售價:HK$
74.8
《
啊哈!原来如此(中译本修订版)
》
售價:HK$
63.8
《
部分识别入门——计量经济学的创新性方法
》
售價:HK$
75.9
《
东野圭吾:变身(来一场真正的烧脑 如果移植了别人的脑子,那是否还是我自己)
》
售價:HK$
64.9
《
推荐连接万物
》
售價:HK$
63.8
《
严复与福泽谕吉启蒙思想比较(王中江著作系列)
》
售價:HK$
165.0
《
甘于平凡的勇气
》
售價:HK$
49.5
《
存在与结构:精神分析的法国转向——以拉康与萨特为中心
》
售價:HK$
52.8
|
編輯推薦: |
1. 内容全面:系统介绍了Java编程的各类实例,适合读者入门到精通。
2. 实用性强:采用案例来编排内容,读者能够通过实例来掌握编程思想。
3. 资源丰富:配套提供了全书300个例子的源代码,便于动手实践举一反三。
|
內容簡介: |
本书提供了300个完整的Java案例,从算法上分为数学、搜索、回溯、递归、排序、迭代、贪心和动态规划等; 从数据结构上分为字符串、数组、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。本书针对经典算法,基于相关的数据结构,将问题描述、问题示例、代码实现及运行结果相结合进行讲解,逻辑清晰,内容丰富,可作为程序开发人员及其他IT从业者学习和提升算法能力的参考书,也可作为高校计算机相关专业的教材。
|
關於作者: |
李永华 北京邮电大学教授,博士生导师。拥有超过20年的软硬件开发经验,长期致力于物联网、云计算与人工智能的教学和科研工作。在教学中,以兴趣为导向,激发学生的创造能力;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念的转变。在实践中,提出了“面向系统、虚实结合、立体多维”的高素质创新人才培养模式,指导大学生创新案例400余项。在科研中,坚持“以正治学,以奇创新,以实促研”;主持国家级与企事业单位课题30余项,申请专利50余项,发表论文100余篇,出版教材专著30余部。
|
目錄:
|
第一篇编 程 入 门
实例001交换数组中的两个元素
实例002输出第几个质数
实例003求三个数之中的最大值
实例004字母大小写的转换
实例005找出数组中出现次数最多的数字
实例006返回Excel表的列号
实例007返回尾部0的个数
实例008两字符串之和
实例009计算质数的个数
实例010是否包含重复元素
实例0112的幂
实例0124的乘方
实例013添加字符
实例014翻转字符串1
实例015完全平方数
实例016有效的字母异位词
实例017二阶阶乘
实例018最大数和最小数
实例019翻转数组
实例020有效的三角形
实例021进制转换
实例022时间角度
实例023旋转数组
实例024判断一个整数对应的二进制数中有多少个1
实例025硬币摆放
实例026具有交替位的二进制数
实例027棒球游戏
实例028七进制
实例029英语软件
实例030重排
实例031不可变的数组
实例032首字母大写
实例033单词间的最短距离
实例034会议室
实例035连续1的最大个数
实例036回文排列
实例037最短无序连续子数组
实例038两个列表的最小索引和
实例039合并排序数组
实例040在二进制表示的整数中计算置位位数为质数的个数
实例041一个月的天数
实例042构造矩形
实例043寻找下一个更大的数
实例044键盘的一行按键输入的单词
实例045完美数
实例046找不同
实例047删除字符
实例048集合运算
实例049字符串中的单词数
实例050路径总和
实例051回旋镖的数量
实例052查找所有数组中未出现的数字
实例053使数组元素相同的最少操作步数
实例054重复的子串模式
实例055补数
实例056第三大的数
实例057转换为十六进制数
实例058判断尾数
实例059返回数组中出现奇数次的元素
实例060翻转字符串中的元音字母
实例061最高频率的IP
实例062二分查找
实例063相同数字
实例064路径和
实例065生成给定大小的数组
实例066缺少的子串
实例067链表转换为数组
实例068简单计算器
实例069将字符转换为整数
实例070数字转换问题
实例071寻找最大值
实例072转换字符串为整数
实例073旋转字符数组
实例074求数组元素中的最大值
实例075翻转一个三位整数
实例076输出X
实例077判断数字与字母
实例078列表转换
实例079字符串查找
实例080元素和最小的子数组
实例081有序数组的平方
实例082捡胡萝卜
实例083安排面试的城市
实例084延伸字符串
实例085目标移动
实例086飞机座位
实例087输出序列中出现X次的最大数字X
实例088旋转数字
实例089返回字符串中出现次数最多的单词
实例090回文子串
实例091数组划分
实例092使指针停在索引0处的方案数
实例093数组的最长前缀
实例094最小移动次数
实例095删除最少的字符获得正确格式的字符串
实例096寻找字母
实例097最长子串长度
实例098警报器
实例099数列求和
实例100最佳利用率
第二篇实 战 提 高
实例101找出重复的数字
实例102平衡数
实例103将字符串变为回文串
实例104在二叉查找树中插入节点
实例105翻转ASCII编码字符串
实例106选票最多的人
实例107最短重复子数组
实例108移动机器人
实例109二叉搜索树两节点之差的最小值
实例110单调数组
实例111最小差值
实例112卡牌分组
实例113翻转后的字符串(仅翻转字母)
实例114比较字符串
实例115有效的山形数组
实例116增减字符串进行匹配
实例117删除索引序列后排序
实例118十进制数转换为二进制数
实例119统计合法数
实例120运行时间差值
实例121满足条件的字符串
实例122数组中距离最小的数
实例123变换矩阵
实例124投资结果
实例125增长率最高的股票
实例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称重金币
实例153k进制加法
实例154字符间最短距离
实例155坐缆车
实例156幸运数字8
实例157日志排序
实例158查找第n个数位
实例159查找左叶子节点值的和
实例160整理字符串格式
实例161检测大写字母用法的正确性
实例162查找Kdiff对的数量
实例163翻转字符串2
实例164计算二叉树的直径长度
实例165学生出勤记录
实例166二叉树倾斜程度
实例167重塑矩阵
实例168数组评分
实例169查找两棵二叉树相同结构和节点值
实例170分糖果
实例171判断能否种植花
实例172从二叉树构建字符串
实例173团购商品次数
实例174合并两棵二叉树
实例175二叉树每层的平均值
实例176寻找数据错误
实例177构建最大二叉树
实例178设计平滑器
实例179不下降数组
实例180输出二叉树中次小的节点
实例181查找最长的单一路径
实例182计算连续子串数量
实例183查找最短连续子数组
实例184找到词典中最长的单词
实例185寻找数组的中心索引
实例186判断托普利兹矩阵
实例187写入字符串所需的行数
实例188判断是否为字符
实例189雷达探测
实例190提取符号和单词
实例191二叉搜索树中最接近的值
实例192计算举重重量
实例193查找最大元素的子数组
实例194订单分配
实例195形成字典序最小字符串
实例196矩阵中的最短路径
实例197查找子数组和为k的个数
实例198计算汉明距离
实例199字符串排序
实例200字符串模式
第三篇高 级 编 程
实例201以相反的顺序存储值
实例202找到映射序列
实例203回文数
实例204两数乘积
实例205求最短子数组长度
实例206统计循环单词
实例207猜数字
实例208字符串之和
实例209寻找不重复的字符
实例210镜像数字
实例211检查字符串缩写是否匹配
实例212判断字符串是否同构
实例213判断矩形是否重叠
实例214寻找最小子树
实例215二叉树最长连续路径长度
实例216数字相加
实例217字符计数
实例218嵌套列表的加权和
实例219计算两数组的交集
实例220移动0到数组尾部
实例221左侧填充空格
实例222判断丑数
实例223求柱子染色方案
实例224电影推荐
实例225快乐数
实例226查找数组中的第二大数
实例227查找等价二叉树
实例228判断对称二叉树
实例229判断完全二叉树
实例230整数排序
实例231目标在数组中出现次数
实例232排序数组中最接近目标的元素
实例233寻找目标最后位置
实例234将二叉树拆解成假链表
实例235将链表中的节点两两交换
实例236求岛屿的个数
实例237最后一个单词的长度
实例238验证有效数字
实例239翻转整数中的数字
实例240二进制数求和
实例241查找最长连续上升子序列
实例242判断数独是否合法
实例243查找二叉树的路径和
实例244计算二进制中有多少个1
实例245切割木棍组成正三角形
实例246查找最大字母
实例247数组求和
实例248检查未站队人数
实例249划分链表
实例250棋子是否被攻击
实例251修改字符串
实例252交叉数组
实例253数字两两配对
实例254数组去重
实例255序列相交
实例256简化链表
实例257设计数据结构存储数字
实例258距离最近的城市
实例259统计爬楼梯的方式
实例260查找最大元素和的连续子数组
实例261通用子数组数量
实例262判断矩阵斜线上的元素是否相同
实例263判断是否为子串
实例264计算丢鸡蛋次数
实例265将二叉树按照层级转化为链表
实例266求方程的根
实例267查找丢失的整数
实例268交换二进制数奇偶数位
实例269分解质因数
实例270求最长回文串的长度
实例271冰雹猜想
实例272在排序链表中插入一个节点
实例273删除无序链表的重复项
实例274用isSubstring函数判断字符串的循环移动
实例275求矩阵的之字形遍历
实例276将整数n的二进制表示转换为整数m的二进制表示
实例277排序数组转换为高度最小的二叉搜索树
实例278使用插入方式对链表进行排序
实例279删除数组中相同的数字
实例280链表求和
实例281合并两个排序链表
实例282判断两个字符串是否为变位词
实例283判断字符串中是否没有重复字符
实例284合并区间
实例285实现x的平方根
实例286寻找元素之和为0的子数组
实例287移动机器人不同路径的数量
实例288删除排序链表中的重复元素
实例289判断两个输入流结果是否相等
实例290查找数字之和为最小的路径
实例291判断是否为平衡二叉树
实例292寻找落单的数字
实例293查找中位数
实例294二叉树的层次遍历
实例295二叉树的后序遍历
实例296二叉树的中序遍历
实例297二叉树的前序遍历
实例298合并排序整数数组
实例299在整数数组中找两数之和等于给定数的数
实例300查找主元素
参考文献
|
內容試閱:
|
Java语言是国内外广泛使用的计算机程序设计语言,是高等院校相关专业重要的基础课程。它具有功能丰富、使用灵活方便、应用面广、目标程序效率高、可移植性好等优点。20世纪90年代以来,Java语言迅速在全世界得到推广普及,是目前世界上优秀的程序设计语言之一。
本书是作者为适应当前教育教学改革的创新要求,更好地践行语言类课程注重实践教学与创新能力培养的要求而组织编写的。本书融合同类图书的优点,采取创新方式,精选300个趣味性、实用性强的应用实例,从不同难度、不同类型和不同数据结构对Java语言实际算法进行总结,希望对教育教学起到抛砖引玉的作用。
本书的主要内容和素材来自于各大互联网公司面试算法、LintCode、LeetCode、九章算法和作者所在学校近几年承担的科研项目成果。作者所指导的研究生在研究过程中对学习和应用的算法进行了总结,学生不仅学到了知识,提高了能力,而且为本书提供了第一手素材和相关资料。
本书内容由总到分,先提出问题后实践,将算法描述与代码实现相结合,可以作为从事网络开发和算法实现专业人员的技术参考书、大学信息与通信工程及相关专业的本科生的Java算法实现教材、程序员的算法提高手册,也可以为算法分析、算法设计、算法实现者提供帮助。
本书的编写得到了教育厅电子信息类专业教学指导委员会、信息工程专业国家第一类特色专业建设项目、信息工程专业国家第二类特色专业建设项目、教育厅CDIO工程教育模式研究与实践项目、教育厅本科教学工程项目、信息工程专业北京市特色专业建设、北京市教育教学改革项目和北京邮电大学教育教学改革项目(2022SJJXA01)的大力支持,在此表示感谢!
由于作者经验与水平有限,书中疏漏及不当之处在所难免,衷心希望各位读者多提宝贵意见,以便再版时进一步修改和完善。
李永华于北京邮电大学
2023年9月
|
|