本题要求从起点(第 1 块石板)到终点(第 n 块石板)的最少跳跃次数,每次只能向前跳 1 块或 2 块,且只能落在稳固石板(状态为 0)上。已知起点和终点总是稳固的,且题目保证一定有解。
采用贪心策略:在每一步,优先尝试跳跃 2 块石板。
i 满足 i + 2 < n 且第 i + 2 块石板为稳固石板(s[i+2] == 0),则直接跳到 i + 2;i + 1。正确性说明:跳跃 2 块总是比跳跃 1 块更高效(移动相同距离需要更少步数),并且因为题目保证存在到达终点的路径,选择跳 2 块不会导致进入“死胡同”而无法到达终点;若一个位置能跳 2 块却选择跳 1 块,只会白白增加跳跃次数,不可能更优。
小明在一条由 n 块石板铺成的小路上。每块石板有一个状态:0 表示这块石板是稳固的,可以安全站立;1 表示这块石板是松动的,不能踩上去。小明一开始站在第 1 块石板上,他想到达第 n 块石板。他每次跳跃可以向前移动 1 块或 2 块石板,但只能落在稳固的石板上(状态为 0)。已知第 1 块和第 n 块石板总是稳固的,且题目保证小明总能到达终点。请你计算小明从起点到终点所需的最少跳跃次数。
约束:石板的总数 n 满足 2≤n≤100;每块石板的状态为 0 或 1,且 s1=sn=0。
第一行包含一个整数 n,表示石板的总数。 第二行包含 n 个用空格分隔的整数 s1,s2,…,sn,依次表示第 1 块到第 n 块石板的状态(0 表示稳固,1 表示松动)。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册