新書推薦:

《
厨房药房:用香料和药草疗愈身心
》
售價:NT$
254

《
稳富:悄悄存钱,稳稳变富
》
售價:NT$
296

《
神圣罗马帝国
》
售價:NT$
653

《
优势累积:给中国家庭的松弛父母课
》
售價:NT$
300

《
汗青堂丛书163——狄仁杰与武则天:武周革命与平民官僚的崛起
》
售價:NT$
449

《
历史、神话与艺术:东西方文化的解读和比较
》
售價:NT$
347

《
在别处安家:关于逃离、生存与梦想破碎之地
》
售價:NT$
347

《
棉花王国 密西西比河流域的奴隶制与资本主义 (一部改写美国奴隶制认知的史学佳作)
》
售價:NT$
602
|
| 編輯推薦: |
|
本书主要从算法上分为数学、搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等;从数据结构上分为字符串、数组、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。针对经典算法,结合相关的数据结构,从问题描述、问题示例、代码实现以及运行结果相结合。适合对象为计算机领域程序员及工程师、计算机科学相关领域本科生及研究生、其他算法爱好者(对算法感兴趣的读者、产品经理等)。目标是将本书打造成广大IT从业者和程序开发人员学习和提升算法能力的高效学习材料,同时也可以作为科研院所及企业的工程师参考的一本技术性书籍,提升解决实际编程问题的能力。
|
| 內容簡介: |
|
本书主要从算法上分为数学、搜索、回溯、递归、排序、迭代、贪心、分治和动态规划等;从数据结构上分为字符串、数组、指针、区间、队列、矩阵、堆栈、链表、哈希表、线段树、二叉树、二叉搜索树和图结构等。针对经典算法,结合相关的数据结构,从问题描述、问题示例、代码实现以及运行结果相结合。适合对象为计算机领域程序员及工程师、计算机科学相关领域本科生及研究生、其他算法爱好者(对算法感兴趣的读者、产品经理等)。目标是将本书打造成广大IT从业者和程序开发人员学习和提升算法能力的高效学习材料,同时也可以作为科研院所及企业的工程师参考的一本技术性书籍,提升解决实际编程问题的能力。
|
| 關於作者: |
|
李永华,现执教于北京邮电大学,拥有超过20年的嵌入式开发经验,致力于物联网、云计算与大数据的研究工作。在教学中善于以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念的转变。在研发及教学实践中指导学生实现500个创新案例,承担参与了30余项国家级、企业组织的理论研究和工程项目没在国内外学术期刊以及会议发表论文100余篇,申请专利40余项,出版教材40余部。
|
| 目錄:
|
目录
【实例001】反转一个3位整数
【实例002】合并排序数组
【实例003】旋转字符串
【实例004】相对排名
【实例005】二分查找
【实例006】下一个更大的数
【实例007】字符串中的单词数
【实例008】勒索信
【实例009】不重复的两个数
【实例010】双胞胎字符串
【实例011】最接近target的值
【实例012】点积
【实例013】函数运行时间
【实例014】查询区间
【实例015】两数之和
【实例016】二进制求和
【实例017】数组剔除元素后的乘积
【实例018】键盘的一行
【实例019】第n个数位
【实例020】找不同
【实例021】第k个排列
【实例022】平面列表
【实例023】子域名访问计数
【实例024】最长AB子串
【实例025】删除字符
【实例026】字符串写入的行数
【实例027】独特的莫尔斯码
【实例028】比较字符串
【实例029】最长公共前缀
【实例030】经典二分查找问题
【实例031】判别首字母缩写
【实例032】排序数组
【实例033】构造矩形
【实例034】数组的相对排序
【实例035】两数相除
【实例036】文件组合
【实例037】最长连续递增序列
【实例038】首字母大写
【实例039】七进制
【实例040】查找数组中未出现的所有数字
【实例041】回旋镖的数量
【实例042】合并排序数组
【实例043】最小路径和
【实例044】大小写转换
【实例045】最后一个单词的长度
【实例046】矩阵中的最长递增路径
【实例047】统计结果概率
【实例048】水仙花数
【实例049】余弦相似度
【实例050】链表节点计数
【实例051】最高频的k个单词
【实例052】多数元素
【实例053】石子归并
【实例054】简单计算器
【实例055】寻找数组第二大的数
【实例056】寻找二叉搜索树中的目标节点
【实例057】二叉树的层平均值
【实例058】阶乘尾数
【实例059】两个字符串是变位词
【实例060】最长单词
【实例061】机器人能否返回原点
【实例062】链表倒数第n个节点
【实例063】链表求和
【实例064】删除元素
【实例065】判断一个数是否迷人
【实例066】合并两个排序链表
【实例067】反转整数
【实例068】报数
【实例069】完全二叉树的节点个数
【实例070】对称二叉树
【实例071】二叉树的坡度
【实例072】岛屿的个数
【实例073】判断是否为平方数之和
【实例074】滑动窗口内数的和
【实例075】棒球游戏
【实例076】硬币摆放
【实例077】字母大小写转换
【实例078】二进制表示中质数个计算置位
【实例079】最少费用的爬台阶方法
【实例080】中心索引
【实例081】词典中最长的单词
【实例082】重复字符串匹配
【实例083】不下降数组
【实例084】最大的回文数乘积
【实例085】补数
【实例086】加热器
【实例087】将火柴摆放成正方形
【实例088】可怜的小动物
【实例089】循环数组中的环
【实例090】分饼干
【实例091】翻转字符串中的元音字母
【实例092】翻转字符串
【实例093】使数组元素相同的最少步数
【实例094】加油站
【实例095】春游
【实例096】合法数组
【实例097】删除排序数组中的重复数字
【实例098】字符串的不同排列
【实例099】全排列
【实例100】带重复元素的排列
【实例101】插入区间
【实例102】N皇后问题
【实例103】主元素
【实例104】字符大小写排序
【实例105】上一个排列
【实例106】下一个排列
【实例107】二叉树的层次遍历
【实例108】最长公共子串
【实例109】最近公共祖先
【实例110】k数和
【实例111】删除排序链表中的重复元素
【实例112】最长连续序列
【实例113】背包问题
【实例114】二叉树的最大深度
【实例115】合并两个有序数组
【实例116】不同的二叉查找树
【实例117】单值二叉树
【实例118】文物朝代判断
【实例119】丢失的第1个正整数
【实例120】寻找缺失的数
【实例121】排列序号Ⅰ
【实例122】排列序号Ⅱ
【实例123】最多有k个不同字符的最长子字符串
【实例124】第k个排列
【实例125】数飞机
【实例126】动态口令
【实例127】二叉树的最小深度
【实例128】二叉搜索树的范围和
【实例129】栅栏染色
【实例130】房屋染色
【实例131】存在重复元素
【实例132】重新排列数组
【实例133】数组序号转换
【实例134】稀疏数组搜索
【实例135】打劫房屋
【实例136】左旋右旋迭代器
【实例137】数组第k大元素
【实例138】前k大数
【实例139】排列构建数组
【实例140】有效的山脉数组
【实例141】最长重复子序列
【实例142】僵尸矩阵
【实例143】摊平二维向量
【实例144】第k大元素
【实例145】两数和小于或等于目标值
【实例146】两数差等于目标值
【实例147】骑士的最短路线
【实例148】k个最近的点
【实例149】统计目标成绩的出现次数
【实例150】二叉树的最长连续子序列
【实例151】查找总价格为目标值的两个商品
【实例152】课程表
【实例153】课程安排
【实例 154】单词表示数字
【实例155】长度为k的最大子数组
【实例156】移除子串
【实例157】数组划分
【实例158】矩形重叠
【实例159】最长回文串
【实例160】子数组最小乘积的最大值
【实例161】删除子数组的最大得分
【实例162】长度为k子数组中的最大和
【实例163】矩阵中的局部最大值
【实例164】二叉树的直径
【实例165】寻找重复的数
【实例166】有序数组中的单一元素
【实例167】132模式识别
【实例168】检查缩写字
【实例169】一次编辑距离
【实例170】数据流滑动窗口平均值
【实例171】长度最小的子数组
【实例172】乘积小于k的子数组
【实例173】漂亮数组
【实例174】等差子数组
【实例175】数组拆分
【实例176】通过翻转子数组使两个数组相等
【实例177】二叉树垂直遍历
【实例178】因式分解
【实例179】将一维数组转变成二维数组
【实例180】下载插件
【实例181】能否连接形成数组
【实例182】数1的个数
【实例183】平面范围求和——不可变矩阵
【实例184】对数组执行操作
【实例185】按符号重排数组
【实例186】1和0
【实例187】搜索旋转排序数组
【实例188】区间子数组个数
【实例189】最大子数组之和为k
【实例190】等差切片
【实例191】2D战舰
【实例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】移除k位
【实例238】轮转函数
【实例239】字符至少出现k次的最长子串
【实例240】消除游戏
【实例241】有序矩阵中的第k小元素
【实例242】超级幂次
【实例243】水罐问题
【实例244】计算不同数字整数的个数
【实例245】找出数组的串联值
【实例246】矩阵中的幸运数
【实例247】不同路径
【实例248】移除元素
【实例249】找出数组中最大数和最小数的最大公约数
【实例250】查找子数组
【实例251】非递增顺序的最小子序列
【实例252】判断矩阵是不是X矩阵
【实例253】矩阵中的局部最大值
【实例254】转置矩阵
【实例255】破冰游戏
【实例256】和相等的子数组
【实例257】最长优雅子数组
【实例258】替换数组中的元素
【实例259】最大三角形面积
【实例260】有效三角形的个数
【实例261】三角形的最大周长
【实例262】完成面试题目
【实例263】爬楼梯
【实例264】最小展台数量
【实例265】使用最小花费爬楼梯
【实例266】最小时间差
【实例267】无重复字符的最长子串
【实例268】最小数字游戏
【实例269】最长和谐子序列
【实例270】最长公共子序列
【实例271】最长重复子数组
【实例272】最长递增子序列
【实例273】最长奇偶子数组
【实例274】最长的美好子字符串
【实例275】统计二进制子串的数量
【实例276】最长回文子序列
【实例277】回文子串数目
【实例278】子串的最大出现次数
【实例279】最长合法子字符串的长度
【实例280】最长递增子序列的个数
【实例281】寻找文件副本
【实例282】最小覆盖子串
【实例283】数组的最大值
【实例284】寻找峰值
【实例285】寻找数组的中心下标
【实例286】连接两字母单词得到的最长回文串
【实例287】最长等差数列
【实例288】替换子串得到平衡字符串
【实例289】最短超级串
【实例290】绝对差不超过限制的最长连续子数组
【实例291】仅含1的子串数
【实例292】反转字符串
【实例293】最长数对链
【实例294】数组中的最长山脉
【实例295】寻找比目标字母大的最小字母
【实例296】有效的括号
【实例297】不同的平均值数目
【实例298】字符串轮转
【实例299】缺失的第一个素数
【实例300】搜索插入位置
|
| 內容試閱:
|
前言
C++作为一种多范式、静态类型的编程语言,以其卓越的性能和强大的抽象能力在软件开发及计算机科学的广阔天地中占据了举足轻重的地位。它巧妙地融合了C语言的高效性与面向对象编程的灵活性,成为横跨系统软件开发和复杂应用程序开发领域的得力助手。
本书的问世,旨在响应当代教育改革的呼声,强调实践教学的重要性,并致力于培养读者的创新能力。作者汇集了众多优秀教材之精华,精心挑选了300个充满趣味且实用性强的编程实例,期望能够激发教育领域的新思路,引领读者进入更深层次的探索。
书中内容的灵感和素材主要汲取自九章算法、LintCode和LeetCode等知名编程平台,确保了案例的实用性和前瞻性。
本书不仅为广大渴望提升C++编程技能的开发者提供了宝贵的学习资源,也为科研机构的研究人员和企业界的工程师提供了实用的技术参考。我们坚信,通过这300个精彩案例的深入学习,读者将在C++编程的征途上迈出坚实的步伐,无论是在学术探索还是在工业实践中,都能够更加自信地迎接和克服编程中的各种挑战。
本书的编写得到了信息工程专业国家第一类特色专业建设项目、信息工程专业国家第二类特色专业建设项目、CDIO工程教育模式研究与实践项目、本科教学工程项目、信息工程专业北京市特色专业建设、北京市教育教学改革项目的大力支持,在此表示感谢!
鉴于作者的经验和水平有限,书中难免存在疏漏和不足之处。我们诚挚地欢迎广大读者提出宝贵的意见和建议,以及具体的改进措施,以便我们能够不断修正和完善本书,共同推动C++编程教育的发展。
李永华于北京邮电大学2025年3月
|
|