【秋招笔试】8.11大疆秋招(第一套)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试

💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导

✨ 本系列打算持续跟新 春秋招笔试题

👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸

✨ 笔试合集传送们 -> 🧷春秋招笔试合集

🍒 本专栏已收集 50+套笔试题,笔试真题 会在第一时间跟新

🍹 近期会进行一波价格调整,没订阅的朋友抓紧冲!!!

alt

🪔 大疆的秋招第一场笔试,来啦!!!

🍥 大疆有很多套卷,每套卷子有 0/1/2 道编程题,题目内容不一定相同,这样 选择题、填空、问答 的比重就占很大了。

🍉 本题是力扣的一道原题,虽然比较经典,但对第一次接触的小伙伴来说还是有一定难度的。

🏺 01.LYA的宝藏探险

问题描述

LYA是一位著名的探险家,她最近发现了一个古老的宝藏地图。这张地图显示了一个 的矩形区域,每个格子都有特殊的能量场。LYA需要从左上角出发,到达右下角才能获得宝藏。

地图上的每个格子都有一个整数值,代表不同的能量场强度:

  • 负数表示该格子会消耗LYA的能量
  • 正数表示该格子会补充LYA的能量
  • 零表示该格子对LYA的能量没有影响

LYA每次只能向右或向下移动一格。如果她的能量在任何时候降到零或以下,她就会被传送出地图,探险失败。

为了确保探险成功,LYA需要计算出最低的初始能量值。请你帮助LYA计算这个最低初始能量值,使她能够安全地到达右下角的宝藏位置。

输入格式

第一行包含两个正整数 ,分别表示地图的行数和列数。

接下来的 行,每行包含 个整数,表示地图上每个格子的能量场强度。

输出格式

输出一个正整数,表示LYA需要的最低初始能量值。

样例输入

3 3
-2 -3 3
-5 -10 1
10 30 -5

样例输出

7

数据范围

题解

力扣原题改编:174. 地下城游戏

这个问题可以使用动态规划来解决。我们可以从右下角开始,逆向计算到达每个格子所需的最低能量。

定义 为从格子 到达右下角所需的最低能量。我们可以得到以下状态转移方程:

这个方程的含义是:

  1. 我们取右边和下边格子所需能量的最小值
  2. 减去当前格子的能量值
  3. 确保结果至少为1(因为能量不能为负)

最终, 就是我们需要的答案。

参考代码

  • Python
def min_initial_energy(grid):
    m, n = len(grid), len(grid[0])
    # 初始化dp数组,设置一个较大的初始值
    dp = [[float('inf')] * (n + 1) for _ in range(m + 1)]
    
    # 设置边界条件
    dp[m][n-1] = dp[m-1][n] = 1
    
    # 从右下角开始填充dp数组
    for i in range(m - 1, -1, -1):
        for j in range(n - 1, -1, -1):
            # 计算当前格子所需的最低能量
            min_energy = min(dp[i+1][j], dp[i][j+1])
            dp[i][j] = max(1, min_energy - grid[i][j])
    
    return dp[0][0]

# 读取输入
m, n = map(int, input().split())
grid = [list(map(int, i

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

学长刷题笔记 文章被收录于专栏

这里收集了超全的刷题笔记,欢迎大家的订阅,会持续跟新的

全部评论

相关推荐

dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
2 9 评论
分享
牛客网
牛客企业服务