女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

女孩要找一组数的最大值。机器人把整个解题过程串起来,而不是直接跳到代码。

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 读题非空整数序列
  2. 方法首项当候选,逐项挑战
  3. 编码比较后按需更新
  4. 验证负数、重复、单项

完整解题要从题意走到算法,再到实现与验证。

这个最大值方法始终保存“已看部分的最大值”,所以全部看完后就是全体最大值。这个理由比只展示答案更重要。

01AC 是什么意思?

AC(Accepted)表示程序通过在线评测系统为该题准备的测试,被判定为正确。

但学习的目标不只是看到绿色 AC,而是知道自己为什么能得到它。

02完整流程第一阶段:读懂问题

① 读题② 明确输入输出③ 看数据范围④ 手算小例子

这一阶段不要急着写实现代码。

03第二阶段:建立模型

把故事转换成:

  • 变量
  • 数组
  • 状态
  • 树或图
  • 数学关系

确认哪些信息真正影响答案。

04第三阶段:先找正确方法

如果没有高效思路,先设计暴力方案。

能正确解决分析重复和瓶颈再优化

05第四阶段:检查复杂度

把最大数据范围代入你的复杂度直觉:

  • 循环会执行多少次?
  • 搜索状态有多少?
  • 内存大约多少?

06第五阶段:写代码

编码时保持:

变量名清楚

表达真实含义。

边界明确

数组和循环范围正确。

类型够用

避免整数溢出。

结构清晰

必要时拆函数。

07第六阶段:自己测试

至少测试:

  • 官方样例
  • 最小输入
  • 最大或接近最大规模
  • 特殊顺序和重复值
  • 自己手算过的小例子

08第七阶段:如果 WA 怎么办?

WA(Wrong Answer)不是“重新乱改一遍”。

找失败用例追踪第一次错误修复并回归测试

09真正应该带走的是什么?

你已经知道了什么

  • AC 表示程序通过评测。
  • 完整解题不只是编码。
  • 应先读题和建模,再设计方案。
  • 从暴力到优化是一条重要路径。
  • 复杂度、边界、测试和调试都是解题的一部分。
  • 真正重要的是形成稳定、可复用的解决问题方法。

本专题完成:“编程与算法”栏目基础知识链已经完整串起来了。

轮到你来试一试

最大值出现两次,要返回最早的位置,更新时该在相等时也替换吗?

想好了吗?点开看解释

不该。只在严格更大时更新,就能保留第一次出现的位置;具体还要遵守题目编号规则。