图书目录

目录

源码下载

第1章绪论/

1.1LintCode1200——相对排名★/

1.2LintCode1901——有序数组的平方★/

1.3LintCode211——字符串置换★/

1.4LintCode772——错位词分组★★/

1.5LintCode55——比较字符串★/

1.6LintCode460——在排序数组中找最接近的k个数★★/

1.7LintCode424——求逆波兰表达式的值★★/

1.8LintCode1369——最频繁单词★/

1.9LeetCode20——有效的括号★/

1.10LeetCode1190——反转每对括号间的子串★★/

1.11LeetCode496——下一个更大元素Ⅰ★/

1.12LeetCode217——存在重复元素★/

1.13LeetCode3——无重复字符的最长子串★★/

1.14POJ3664——选举时间/

1.15POJ2833——平均数/

1.16POJ2491——寻宝游戏/

第2章递归算法设计技术/

2.1LintCode452——删除链表中的元素★/

2.2LintCode217——无序链表中重复项的删除★/

2.3LintCode221——链表求和Ⅱ★★/

2.4LintCode1181——二叉树的直径★/

2.5LintCode1137——从二叉树构建字符串★/

2.6LintCode649——二叉树的翻转★★/

2.7LintCode424——求逆波兰表达式的值★★/

2.8LeetCode50——Pow(x,n)★★/

2.9LeetCode231——2的幂★/

2.10LeetCode44——通配符的匹配★★★/

2.11LeetCode1190——反转每对括号间的

子串★★/

2.12LeetCode59——螺旋矩阵Ⅱ★★/

2.13LeetCode1106——解析布尔表达式★★★/

2.14POJ1664——放苹果/

2.15POJ1747——表达式/

2.16POJ1941——Sierpinski分形/

2.17POJ3752——字母旋转游戏/

第3章穷举法/

3.1LintCode1068——寻找数组的中心索引★/

3.2LintCode1517——最大子数组★/

3.3LintCode1338——停车困境★/

3.4LintCode993——数组划分Ⅰ★/

3.5LintCode406——和大于s的最小子数组★★/

3.6LintCode1331——英语软件★/

3.7LintCode397——最长上升连续子序列★/

3.8LeetCode1534——统计好三元组★/

3.9LeetCode204——计数质数★★/

3.10LeetCode187——重复的DNA序列★★/

3.11LeetCode2018——判断单词是否能放入

填字游戏内★★/

3.12LeetCode2151——基于陈述统计最多

好人数★★★/

3.13POJ2000——金币/

3.14POJ1013——假币问题/

3.15POJ1256——字谜/

3.16POJ3187——倒数和/

第4章分治法/

4.1LintCode1376——等价字符串★★/

4.2LintCode31——数组的划分★★/

4.3LintCode143——颜色的分类Ⅱ★★/

4.4LintCode628——最大子树★/

4.5LintCode900——二叉搜索树中最接近的值★/

4.6LintCode931——k个有序数组的中位数★★★/

4.7LintCode1817——分享巧克力★★★/

4.8LintCode1753——写作业★★/

4.9LintCode460——在排序数组中找最接近的k个数★★/

4.10LintCode75——寻找峰值★★/

4.11LeetCode912——排序数组★★/

4.12LeetCode241——为运算表达式设计优先级★★/

4.13LeetCode4——寻找两个正序数组的中位数★★★/

4.14LeetCode148——排序链表★★/

4.15LeetCode493——翻转对★★★/

4.16LeetCode1985——找出数组中第k大的整数★★/

4.17POJ2299——UltraQuickSort/

4.18POJ2623——中位数/

4.19POJ3104——烘干/

4.20POJ3273——每月花费/

第5章回溯法/

5.1LintCode1353——根结点到叶子结点求和★★/

5.2LintCode802——数独★★★/

5.3LintCode135——数字组合★★/

5.4LintCode1915——举重★★★/

5.5LintCode680——分割字符串★★/

5.6LintCode136——分割回文串★★/

5.7LintCode816——旅行商问题★★★/

5.8LeetCode784——字母大小写全排列★★/

5.9LeetCode1079——活字印刷★★/

5.10LeetCode93——复原IP地址★★/

5.11LeetCode22——括号的生成★★/

5.12LeetCode89——格雷编码★★/

5.13LeetCode301——删除无效的括号★★★/

5.14POJ3050——跳房子/

5.15POJ1724——道路/

5.16POJ1699——最佳序列/

5.17POJ1564——求和/

5.18POJ2245——组合/

5.19POJ1321——棋盘问题/

5.20POJ2488——骑士之旅/

第6章分支限界法/

6.1LintCode1376——通知所有员工所需

的时间★★/

6.2LintCode1504——获取所有钥匙的

最短路径★★★/

6.3LintCode1685——迷宫Ⅳ★★/

6.4LintCode1428——钥匙和房间★★/

6.5LintCode531——六度问题★★/

6.6LintCode120——单词接龙★★★/

6.7LintCode1888——矩阵中的最短路径★★/

6.8LintCode803——建筑物之间的

最短距离★★★/

6.9LeetCode1020——飞地的数量★★/

6.10LeetCode752——打开转盘锁★★/

6.11LeetCode773——滑动谜题★★★/

6.12POJ1724——道路/

6.13POJ2449——第K条最短路径长度/

6.14POJ1376——机器人/

第7章动态规划/

7.1LintCode41——最大子数组★/

7.2LintCode110——最小路径和★/

7.3LintCode118——不同的子序列★★/

7.4LintCode1147——工作安排★★/

7.5LintCode553——炸弹袭击★★/

7.6LintCode107——单词拆分Ⅰ★★/

7.7LintCode436——最大正方形★★/

7.8LintCode394——硬币排成线★★/

7.9LintCode125——背包问题Ⅱ★★/

7.10LintCode440——背包问题Ⅲ★★/

7.11LintCode563——背包问题Ⅴ★★/

7.12LintCode669——换硬币★★/

7.13LintCode94——二叉树中的最大路径和★★/

7.14LintCode1306——旅行计划Ⅱ★★★/

7.15LeetCode121——买卖股票的最佳时机★/

7.16LeetCode122——买卖股票的最佳时机Ⅱ★★/

7.17LeetCode123——买卖股票的最佳时机Ⅲ★★★/

7.18LeetCode188——买卖股票的最佳时机Ⅳ★★★/

7.19LeetCode309——买卖股票的最佳时机(含冷冻期)★★/

7.20LeetCode714——买卖股票的最佳时机(含手续费)★★/

7.21LeetCode91——解码方法★★/

7.22LeetCode650——只有两个键的键盘★★/

7.23LeetCode44——通配符的匹配★★★/

7.24LeetCode10——正则表达式的匹配★★★/

7.25LeetCode5——最长回文子串★★/

7.26LeetCode516——最长回文子序列★★/

7.27POJ2533——最长递增子序列/

7.28POJ1458——公共子序列/

7.29POJ1837——平衡/

7.30POJ3624——手链/

7.31POJ1276——取款机/

7.32POJ1947——重建道路/

7.33POJ2904——邮箱制造商问题/

第8章贪心法/

8.1LintCode920——会议室★/

8.2LintCode919——会议室Ⅱ★★/

8.3LintCode184——最大数★★/

8.4LintCode187——加油站★★/

8.5LintCode304——最大乘积★★/

8.6LintCode358——树木规划★/

8.7LintCode719——计算最大值★★/

8.8LintCode761——最小子集★★/

8.9LintCode891——有效回文Ⅱ★★/

8.10LeetCode122——买卖股票的最佳时机Ⅱ★★/

8.11LeetCode11——盛水最多的容器★★/

8.12LeetCode881——救生艇★★/

8.13LeetCode1029——两地调度★★/

8.14LeetCode402——移掉k位数字★★/

8.15LeetCode763——划分字母区间★★/

8.16LeetCode630——课程表Ⅲ★★★/

8.17LeetCode1353——最多可以参加的会议数目★★/

8.18POJ2782——装箱/

8.19POJ3069——标记/

8.20POJ1017——产品包装/

8.21POJ1862——Stripies/

8.22POJ3262——保护花朵/

8.23POJ2970——懒惰的程序员/

8.24POJ1065——加工木棍/

第9章图算法/

9.1LintCode1565——飞行棋Ⅰ★★/

9.2LeetCode1368——至少有一条有效路径的

最小代价★★★/

9.3POJ1751——高速公路问题/

9.4POJ1287——网络/

9.5POJ1251——维护村庄之路/

9.6POJ2349——北极网络/

9.7POJ2387——贝西回家/

9.8POJ1125——股票经纪人的小道消息/

9.9POJ1724——道路/

9.10POJ1087——插头/

9.11HDU1535——最小总费用/

9.12HDU1874——畅通工程/

9.13HDU3572——任务调度/

第10章计算几何/

10.1LeetCode223——矩形面积★★/

10.2LeetCode963——最小面积矩形Ⅱ★★/

10.3LeetCode149——直线上最多的点数★★★/

10.4POJ1269——线段交点/

10.5POJ2653——捡棍子/

10.6POJ2318——玩具/

10.7POJ1696——太空蚂蚁/

10.8POJ2187——选美比赛/

10.9HDU1115——抬起石头/

10.10HDU4643——GSM/

10.11HDU1348——墙/

10.12HDU5721——宫殿/

10.13HDU3007——导弹/

附录A在线编程实验报告示例/