温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LeetCode如何解决跳水板问题

发布时间:2021-12-15 10:42:20 来源:亿速云 阅读:140 作者:小新 栏目:大数据

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI