首页 > 其他 > 详细

leetcode-164周赛-1269-停在原地的方案数

时间:2019-11-25 18:36:07      阅读:108      评论:0      收藏:0      [点我收藏+]

题目描述:

技术分享图片

 

 技术分享图片

 

 自己的提交:

class Solution:
    def numWays(self, steps: int, arrLen: int) -> int:
        l = min(steps,arrLen)
        dp = [0] * l
        dp[0] = 1
        MOD = 10 ** 9 + 7
        for step in range(steps):
            dp_ = dp[:]
            for i in range(len(dp)):
                if i == 0:
                    dp_[i] = (dp[i] + dp[i+1]) % MOD
                elif i == len(dp) - 1:
                    dp_[i] = (dp[i] + dp[i-1]) % MOD
                else:
                    dp_[i] = (dp[i-1] + dp[i] + dp[i+1]) % MOD
            dp = dp_
        return dp[0]

另:

class Solution:
    def numWays(self, steps: int, arrLen: int) -> int:
        l = min(steps,arrLen)
        dp = [0] * l
        dp[0] = 1
        MOD = 10 ** 9 + 7
        for step in range(steps):
            dp_ = [0] * l
            for i in range(len(dp)):
                for j in [-1,0,1]:
                    if 0 <= i+j < l:
                        dp_[i] += dp[i+j]
                dp_[i] %= MOD
            dp = dp_

        return dp[0] 

 

leetcode-164周赛-1269-停在原地的方案数

原文:https://www.cnblogs.com/oldby/p/11929036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!