• 题目要求:

  • 思路:

    • 分为三种情况:
    • 第一种情况,k = 0,也就是要使用0块木板,直接返回空数组即可
    • 第二种情况,longer与shorter相同,那么只有唯一的解是shorter * k
    • 第三种情况,shorter与longer不相同,k也不为0

      • 那么先把最小的结果shorter * k赋给遍历tmp,把tmp添加到结果数组中,tmp作为遍历的起点,把tmp - shorter + longer就是下一个结果,遍历的终点是当tmp等于longer * k时,所有的结果就都在结果数组中了
  • 核心代码:
res = []if k == 0:    return resif longer == shorter:    return [shorter * k]tmp = shorter * kres.append(tmp)while tmp != longer * k:    tmp = tmp - shorter + longer    res.append(tmp)return res
  • 完整代码:
class Solution:    def divingBoard(self, shorter: int, longer: int, k: int) -> List[int]:        res = []        if k == 0:            return res        if longer == shorter:            return [shorter * k]        tmp = shorter * k        res.append(tmp)        while tmp != longer * k:            tmp = tmp - shorter + longer            res.append(tmp)        return res