LeetCode如何解决跳水板问题

这篇文章将为大家详细讲解有关LeetCode如何解决跳水板问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司是专业的敖汉网站建设公司,敖汉接单;提供网站设计制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行敖汉网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1

 题目描述

用两种尺寸的木板建造跳水板,尺寸分别为longer和shorter,一共使用k块,求可以得到的所有跳水板长度,并由小到大排序。如:shorter=1,longer=2,k=3,最后结果为[3,4,5,6]。

2

 题解

思路:数学计算一共使用k块木板,所以如果longer使用了i块,那么shorter就使用k-i块,基于这样的基本思路可知,本题可以在线性时间内完成,并且用的shorter块数越多,整体跳水板长度越短,因此在计算时shorter个使用个数从k开始逐次递减,可避免之后的排序操作。除上述基本情况外还要考虑两种特殊情况,一是当k=0,则返回空,二是当shorter=longer,则返回的结果为shorter*k(longer*k)。
class Solution:    def divingBoard(self, shorter: int, longer: int, k: int) -> List[int]:        s=[]        if k==0:            return s        for i in range(0,k+1):            s.append(longer*i+shorter*(-i+k))        s = list(set(s))        s.sort()        return s

关于“LeetCode如何解决跳水板问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前文章:LeetCode如何解决跳水板问题
标题链接:http://hbruida.cn/article/ieoceg.html