Algorithm By GoLang 经典算法(Go语言) 代码为《C语言名题精选百则技巧篇》一书的Go语言版,原书示例代码为C语言编写 注:本人水平有限,难免会出现错误,如有发现欢迎指正 目录 原书C语言代码 第一章 问题1.1—最长平台 问题1.2—支配值数目 问题1.3—等值数目 问题1.4—两数组最短距离 问题1.5—等值首尾和 第二章 问题2.1—Armstrong数 问题2.2—数字谜 问题2.3—求质数 问题2.4—筛法 问题2.5—线性筛选 问题2.6—因子分解 问题2.7—数值自乘递归解 问题2.8—数值自乘非递归解 问题2.9—Fibonacci数非递归解 问题2.10—快速Fibonacci数算法 问题2.11—扩充Fibonacci数 问题2.12—二项式系数加法解 问题2.13—快速二项式系数算法 问题2.14—快速阶乘运算 问题2.15—更快的阶乘算法 问题2.16—连续整数的固定和 第三章 问题3.1—列出所有子集 问题3.2—列出所有子集—字典序列 问题3.3—产生Gray码 问题3.4—产生所有排列—旋转法 问题3.5—产生所有排列—字典顺序 问题3.6—所有K个元素的子集 问题3.7—集合的所有分割方式 问题3.8—整数的所有不同分割数目 问题3.9—整数的分割方式 第四章 问题4.1—寻找脚码 问题4.2—寻找固定的和 问题4.3—无限式查找 问题4.4—寻找极小值 问题4.5—两个数组的中位数 问题4.6—寻找中间值 问题4.7—3个数组的共同元素 问题4.8—寻找最小与次小元素 问题4.9—查找矩阵 问题4.10—表示成两个数平方和 问题4.11—最大方块区域 第五章 问题5.1—二分插入法 问题5.2—Shell法 问题5.3—快速排列法 问题5.4—保持等值的原来顺序 问题5.5—非递归无堆栈快速排序法 问题5.6—求中位数 问题5.7—堆积法 问题5.8—改良的堆积法 问题5.9—合并法 问题5.10—桶子法 问题5.11—单一重复元素排序 问题5.12—均匀重复元素排序 问题5.13—堆积式合并 问题5.14—检查数组元素是否相异 问题5.15—数组中和为零的段落 问题5.16—平面上的极大点 问题5.17—宴会中访问数目的极大值 问题5.18—包含在其他区间中的区间 第六章 问题6.1—括号匹配问题 问题6.2—转换成后继式写法 问题6.3—计算前置式写法 问题6.4—KnuthMorrisPratt法寻找字符串 问题6.5—BoyerMoore法寻找字符串 问题6.6—所谓的h序列 问题6.7—寻找部分序列 问题6.8—最长重复部分序列 问题6.9—最长共同部分序列 问题6.10—字符串编修 问题6.11—产生无连续重复部分的字符串 第七章 问题7.1—Buffon丢针问题 问题7.2—三色旗问题 问题7.3—字符串列整数的转换 问题7.4—整数类型列的极值 问题7.5—无限位数算数 问题7.6—线性表示的矩阵相乘 问题7.7—对称表示的矩阵相乘 问题7.8—找零钱问题 问题7.9—背包问题 问题7.10—最佳矩阵相乘顺序 问题7.11—最短路径问题 问题7.12—产生匹配括号的字符串 问题7.13—稳定伴侣问题 问题7.14—单调矩阵极值 问题7.15—向量分类 第八章 问题8.1—奇数阶魔方阵 问题8.2—单偶数阶魔方阵 问题8.3—双偶数阶魔方 问题8.4—N后问题公式解 问题8.5—N后问题递归解 问题8.6—武士巡逻 问题8.7—环游世界 问题8.8—一笔画 问题8.9—非递归河内之塔 问题8.10—生命游戏 第九章 问题9.1—等量正负号段落 问题9.2—寻找长方形 问题9.3—多边形的直径 问题9.4—机器人旋转角度 问题9.5—最大涵盖距离 问题9.6—最大连续元素和 问题9.7—最大连续元素积 问题9.8—寻找名人 问题9.9—投票问题 问题9.10—寻找1对1函数 问题9.11—寻找支配元素 问题9.12—最长递增部分序列