题目要的只是「挨着的两盘差了多少」里面最小的那个,所以把每一对相邻的烤盘都算一遍、取最小值就行。
从左往右扫一遍数组,对每个位置 i 计算 |cookies[i + 1] - cookies[i]| 来更新当前的最小值;差值不分方向,统一取绝对值。第一对相邻烤盘的差可以直接当作初始答案,后面每算出一对就和它比一次——数组长度保证至少是 2,第一对一定存在,不用特判。
本题就是一次模拟:按规则扫一遍即可,不需要排序,也不需要额外的数组。
烘焙间里,一排共 n 个烤盘按顺序摆在操作台上,从左到右第 i 个烤盘有 cookies[i] 块饼干(i 从 0 开始)。
值班师傅想先拿件数最接近的两盘去做装袋对照,但他只肯从挨着的两盘里挑:请找出相邻两盘饼干数之差(取绝对值)的最小值,返回这个最小差值。
请实现:
minAdjacentGap(cookies: int[]) -> int
一行整型数组,形如 [4, 9, 6, 6, 12]。
约束:
一行整数:所有相邻两盘饼干数之差里的最小值。
输入:
[4, 9, 6, 6, 12]
输出:
0
说明:第 3 盘和第 4 盘都是 6 块,相差 0,已经没有更小的差。
输入:
[3, 10, 8]
输出:
2
说明:10 与 8 相差 2,3 与 10 相差 7,最小是 2。
输入:
[1, 100]
输出:
99
说明:只有两盘,直接算它们之差。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册