编程之美

2024-06-24

编程之美阅读笔记

书本笔记链接:read_books: 一些书本的阅读 (gitee.com)

第一章:游戏之乐

让CPU占用率曲线听你指挥

中国象棋将帅问题

一摞烙饼的排序(难)

买书问题

快速找出故障的机器

饮料供货

光影切割问题

小飞的电梯调度算法

高效率安排见面会

双线程高效下载

NIM(1)一排石头的游戏

NIM(2)”拈”游戏分析

NIM(3)两堆石头的游戏

Nim游戏及各种变形

Nim游戏及各种变形 - BigSmall_En - 博客园 (cnblogs.com)

连连看游戏设计

构造数独

24点游戏

俄罗斯方块游戏

扫雷游戏

第二章:数字之魅

求二进制中1的个数

【编程之美学习笔记】2.1求二进制数中1的个数 - GraceSkyer - 博客园 (cnblogs.com)

  • 除2取余
  • 与运算右移
  • 位运算消除最低位1
  • 直接查表

不要怕阶乘

寻找发帖的水王

1的数目

寻找最大的K个数

编程之美之2.5 寻找最大的K个数-阿里云开发者社区 (aliyun.com)

  • 暴力排序
  • 快速排序修改版
  • 二分法求第K大的元素
  • 堆排序保留前K个元素
  • 如果N不太大,直接统计[0, Vmax]中各个元素出现的次数,统计最大K个即可

精确表达浮点数

最大公约数

找出符合条件的整数

斐波那契数列

编程之美2.9 斐波那契数列_2419: 斐波那契数列-CSDN博客

  • 空间换时间,记录已知信息
  • 递归变循环
  • 求解通项公式
  • 转换成矩阵乘法,分治求解

寻找数组中的最大值和最小值

寻找最近点对

快速寻找满足条件的两个数

子数组的最大乘积

一文看懂《子数组的最大乘积问题》-腾讯云开发者社区-腾讯云 (tencent.com)

  • 暴力求解
  • 前缀积(从左边/右边开始统计)
  • 分类讨论N个数乘积的情况

求数组的子数组之和的最大值

编程之美8:求数组的子数组之和的最大值_int maxsum-CSDN博客

  • 暴力求解:三重for循环 -> 两重for循环
  • 分治求解
  • 动态规划

子数组之和的最大值(二维)

编程之美2.15 子数组之和的最大值(二维) - panpannju - 博客园 (cnblogs.com)

  • 暴力解法
  • 动态规划,先行求解出Sum(i,j)

求数组中的最长递增子序列

数组循环移位

数组分割

区间重合判断

编程之美–2.19区间重合判断 - 流了个火 - 博客园 (cnblogs.com)

从源区间判断:所有覆盖区间是否能覆盖完源区间

从无序区间判断:预处理无序区间:排序 + 合并

程序理解和时间分析

编程之美——2.20 程序理解和时间分析-CSDN博客

  • 第一:我直接就是读懂了程序
  • 第二:我把自己当成电脑,去执行这段程序,看输出什么

只考加法的面试题

《编程之美》2.21 只考加法的面试题 - 风言枫语 - 博客园 (cnblogs.com)

编程之美:2.21只考加法的面试题 - higirle - 博客园 (cnblogs.com)

  • 好难好难
  • 数学好难

第三章:结构之法

字符串移位包含的问题

电话号码对应英语单词

计算字符串的相似度

从无头单链表中删除节点

最短摘要的生成

编程判断两个链表是否相交

队列中取最大值操作问题

求二叉树中节点的最大距离

重建二叉树

分层遍历二叉树

程序改错

第四章:数学之趣

金刚坐飞机问题

瓷砖覆盖地板

买票找零

点是否在三角形内

磁带文件存放优化

桶内取黑白球

蚂蚁爬杆

三角形测试用例

编程之美:第四章 数字之趣 4.8三角形测试用例_一个byte有255种可能是什么-CSDN博客

测试用例的设计考虑:

  • 基于问题的特性出发
  • 正常的输入数据
  • 异常的输入数据
  • 中间值,边界值的处理情况

数独知多少

数字哑谜和回文

挖雷游戏的概率

4.11 挖雷游戏的概率 - BOTAK - 博客园 (cnblogs.com)

概率推理