动态规划编程题螺旋矩阵python解法

  • class Solution:def spiralMatrixIII(self, rows, cols, rStart, cStart):# 初始化结果列表并将起始位置加入结果res = [(rStart, cStart)]
  •     # 如果结果列表的长度等于总的单元格数,直接返回结果
        if rows * cols == 1:
            return res
    
        # 初始化步长和方向
        step = 1
        dirs = [(0, 1), (1, 0), (0, -1), (-1, 0)]  # 右、下、左、上
        r, c = rStart, cStart
        di = 0  # 当前方向索引
        
        # 循环直到结果列表的长度等于总的单元格数
        while len(res) < rows * cols:
            # 遍历当前步长,移动相应的次数
            for _ in range(step):
                # 更新当前位置
                r += dirs[di][0]
                c += dirs[di][1]
                
                # 如果当前位置在网格范围内,加入结果列表
                if 0 <= r < rows and 0 <= c < cols:
                    res.append((r, c))
            
            # 改变移动方向
            di = (di + 1) % 4
            
            # 每两次改变方向后,步长加1
            if di == 0 or di == 2:
                step += 1
    
        return res
    
    

    示例输入

    rows = 5cols = 6rStart = 1cStart = 4

    创建Solution对象并调用方法

    solution = Solution()result = solution.spiralMatrixIII(rows, cols, rStart, cStart)print(result)

    #动态规划#
    全部评论
    这跟动态规划有什么关系?
    点赞 回复 分享
    发布于 2024-11-03 10:19 北京

    相关推荐

    07-20 11:20
    门头沟学院 Java
    Alan_01:看到都是黑马点评跟苍穹外卖我就放心了
    无实习如何秋招上岸
    点赞 评论 收藏
    分享
    运营你豪哥:1.模板换一个,现在的模板基础信息加个照片已经占了30%的空间。 2.实习经历的描述,按时间倒序标注清楚,选2-3段和你求职意向契合的经历填写。 3.自我评价再改改,要不就删了;怎么感觉自我评价是在介绍你专业的培养体系,看不出重点要突出什么。
    听劝,这个简历怎么改
    点赞 评论 收藏
    分享
    09-10 14:27
    中南大学 营销
    谁知道呢_:上过学的就是不一样
    点赞 评论 收藏
    分享
    评论
    点赞
    收藏
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务