二进制矩阵中的最短畅通路径 问题描述 小R最近在玩一个迷宫游戏,游戏的目标是在一个 n x n 的二进制矩阵 grid 中找到一条从左上角 (0, 0) 到右下角 (n - 1, n - 1) 的畅通路径。畅通路径必须满足以下条件: 路径经过的所有单元格的值都是 0。 路径中相邻的单元格必须在 8 个方向之一上连通(相邻单元格之间共享一条边或一个角)。 你需要帮助小R找到最短的畅通路径长度。如果不存在这样的路径,返回 -1。 测试样例 样例1: 输入:grid = [[0,1],[1,0]] 输出:2 样例2: 输入:grid = [[0,0,0],[1,1,0],[1,1,0]] 输出:4 样例3: 输入:grid = [[1,0,0],[1,1,0],[1,1,0]] 输出:-1 题目解析: 初始化: 使用一个队列来存储当前搜索的节点及其路径长度。 使用一个集合来记录已经访问过的节点,以避免重复访问。 BFS 搜索: 从起点 (0, 0) 开始,将其加入队列,并标记为已访问。 每次从队列中取出一个节点,检查其是否为目标节点 (n-1, n-1)。如果是,返回当前路径长度。 如果不是目标节点,将其相邻的 8 个方向的节点(如果合法且未访问过)加入队列,并更新路径长度。 边界条件: 如果队列为空且未找到目标节点,返回 -1。 代码实现: from collections import deque def solution(grid: list) -> int: n = len(grid) if grid[0][0] == 1 or grid[n-1][n-1] == 1: return -1 ini 代码解读 复制代码
定义 8 个方向的偏移量
directions = [(-1, 0), (1, 0), (0, -1), (0, 1), (-1, -1), (-1, 1), (1, -1), (1, 1)]
初始化队列和访问集合
queue = deque([(0, 0, 1)]) # (row, col, path_length) visited = set((0, 0))
while queue: row, col, path_length = queue.popleft()
# 如果到达目标节点,返回路径长度
if (row, col) == (n-1, n-1):
return path_length
# 遍历 8 个方向
for dr, dc in directions:
new_row, new_col = row + dr, col + dc
# 检查新位置是否在网格内且未访问过且值为 0
if 0 <= new_row < n and 0 <= new_col < n and (new_row, new_col) not in visited and grid[new_row][new_col] == 0:
visited.add((new_row, new_col))
queue.append((new_row, new_col, path_length + 1))
如果队列为空且未找到目标节点,返回 -1
return -1 if name == 'main': print(solution(grid=[[0, 1], [1, 0]]) == 2) print(solution(grid=[[0, 0, 0], [1, 1, 0], [1, 1, 0]]) == 4) print(solution(grid=[[1, 0, 0], [1, 1, 0], [1, 1, 0]]) == -1) 学习计划: 在当今竞争激烈的学习环境中,高效的学习方法显得尤为重要。结合豆包MarsCode AI的刷题功能,本文将介绍我总结的几种高效学习方法,包括如何制定刷题计划、如何利用错题进行针对性学习等。 首先,制定科学合理的刷题计划是高效学习的基础。一个明确的目标和系统的计划能够帮助学习者有条不紊地进行复习。具体而言,我建议首先明确自己的学习目标,比如希望在某个特定的时间内掌握某个知识点或提升自己的综合能力。接下来,可以根据目标合理划分时间段,将每天的学习时间进行细分,例如在一周内每日刷题时间不超过两个小时,每次集中精力进行30分钟至1小时的紧凑学习。在这个过程中,借助豆包MarsCode AI丰富的题库,可以有效提高刷题的效率和针对性。通过系统分析自己的学习进度与效果,随时调整计划,从而保持动态学习状态。 其次,利用错题进行针对性学习是一种非常有效的方法。错题不仅是学习过程中出现的障碍,也是此外,错题本的使用也是一种值得推荐的学习工具。通过建立自己的错题本,将每次刷题过程中遇到的错题进行整理,不仅能够帮助我们巩固记忆,还可以在今后的复习过程中快速查找,从而高效提升学习效果。此外,定期回顾错题本也是必要的,这样可以加深对知识点的理解,防止同样的错误再次发生。 综上所述,结合豆包MarsCode AI刷题功能,制定合理的学习计划和利用错题进行针对性学习是提高学习效率的有效方式。通过明确目标、合理安排学习时间以及深入分析错题,我们不仅能够在短时间内提升自己的能力,还能培养自我反省和总结的习惯。这些方法不仅适用于准备考试的学子,也适用于任何渴望提高学习效率的学习者。 工具运用: 首先,AI 刷题功能能够提供个性化的学习体验。通过分析学生的答题记录与错误类型,AI 能够精准识别学习者的薄弱环节,从而推送相应的练习题目。这一功能可以与在线教育平台的视频课程、讲座以及教材相结合。学生在使用 AI 刷题的过程中,如果遇到不理解的概念,可以立即查阅相关的视频或文本资料,以实现理论与实践的结合。例如,对于在数学题目中遇到的困难,学生可以先通过 AI 刷题获得相关练习,再通过观看教学视频深入理解相关知识点。 其次,利用社交学习平台也是提升学习效果的重要手段。通过与同学、老师或在线学习社区的互动,学生不仅可以获得不同的解题思路与见解,还能共享学习资源。AI 刷题功能可以融入在线讨论区,学生可以在完成题目后,分享自己的解题过程,收集其他人的意见与建议。这种互动不仅增强了学习的趣味性,还促进了知识的深入理解。通过群体智慧的碰撞,学生可以获得更加全面的视角。 此外,时间管理与学习自律同样是运用 AI 刷题功能的重要方面。结合时间管理工具,如番茄工作法应用,学生可以设定学习目标与时间段,合理安排 AI 刷题与其他学习活动的时间。在学习过程中,学生可以利用 AI 提供的实时反馈,及时调整自己的学习策略。这种灵活的学习形式有助于学生在提高学习效率的同时,保持对知识的持续兴趣。 最后,定期的知识巩固与反思至关重要。将 AI 刷题与复习计划结合起来,学生可以通过定期回顾已学习的内容,加深对知识的记忆。这可以通过设置复习提醒,使用 spaced repetition(间隔重复)技术,确保在适当的时间对知识进行再学习。此外,学生还应定期自我评价,分析学习效果,识别需要进一步改进的领域。 综上所述,将 AI 刷题功能与其他学习资源相结合,是提升学习效果的有效途径。在个性化学习、社交互动、时间管理以及知识巩固等方面的深度整合,可以帮助学生在学习过程中事半功倍。只有充分利用各类学习资源,才能实现全面而深入的知识掌握,从而在未来的学习和工作中走得更加稳健。希望以上建议能为广大学习者提供有益的参考,助力他们的学习旅程。 标签: 青训营笔记 话题: 青训营笔记创作活动
作者:此外,错题本的使用也是一种值得推荐的学习工具。通过建立自己的错题本,将每次刷题过程中遇到的错题进行整理,不仅能够帮助我们巩固记忆,还可以在今后的复习过程中快速查找,从而高效提升学习效果。此外,定期回顾错题本也是必要的,这样可以加深对知识点的理解,防止同样的错误再次发生。 综上所述,结合豆包MarsCode AI刷题功能,制定合理的学习计划和利用错题进行针对性学习是提高学习效率的有效方式。通过明确目标、合理安排学习时间以及深入分析错题,我们不仅能够在短时间内提升自己的能力,还能培养自我反省和总结的习惯。这些方法不仅适用于准备考试的学子,也适用于任何渴望提高学习效率的学习者。 工具运用: 首先,AI 刷题功能能够提供个性化的学习体验。通过分析学生的答题记录与错误类型,AI 能够精准识别学习者的薄弱环节,从而推送相应的练习题目。这一功能可以与在线教育平台的视频课程、讲座以及教材相结合。学生在使用 AI 刷题的过程中,如果遇到不理解的概念,可以立即查阅相关的视频或文本资料,以实现理论与实践的结合。例如,对于在数学题目中遇到的困难,学生可以先通过 AI 刷题获得相关练习,再通过观看教学视频深入理解相关知识点。 其次,利用社交学习平台也是提升学习效果的重要手段。通过与同学、老师或在线学习社区的互动,学生不仅可以获得不同的解题思路与见解,还能共享学习资源。AI 刷题功能可以融入在线讨论区,学生可以在完成题目后,分享自己的解题过程,收集其他人的意见与建议。这种互动不仅增强了学习的趣味性,还促进了知识的深入理解。通过群体智慧的碰撞,学生可以获得更加全面的视角。 此外,时间管理与学习自律同样是运用 AI 刷题功能的重要方面。结合时间管理工具,如番茄工作法应用,学生可以设定学习目标与时间段,合理安排 AI 刷题与其他学习活动的时间。在学习过程中,学生可以利用 AI 提供的实时反馈,及时调整自己的学习策略。这种灵活的学习形式有助于学生在提高学习效率的同时,保持对知识的持续兴趣。 最后,定期的知识巩固与反思至关重要。将 AI 刷题与复习计划结合起来,学生可以通过定期回顾已学习的内容,加深对知识的记忆。这可以通过设置复习提醒,使用 spaced repetition(间隔重复)技术,确保在适当的时间对知识进行再学习。此外,学生还应定期自我评价,分析学习效果,识别需要进一步改进的领域。 综上所述,将 AI 刷题功能与其他学习资源相结合,是提升学习效果的有效途径。在个性化学习、社交互动、时间管理以及知识巩固等方面的深度整合,可以帮助学生在学习过程中事半功倍。只有充分利用各类学习资源,才能实现全面而深入的知识掌握,从而在未来的学习和工作中走得更加稳健。希望以上建议能为广大学习者提供有益的参考,助力他们的学习旅程。 标签: 青训营笔记 话题: 青训营笔记创作活动
作者:用户36916358610 链接: 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 链接: 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。