8.19 京东后端笔试 算法题

T1、T2 100

T3

每次可以前进的方向(x+k, y) (x, y+k) (x+k)(y+k) (k随意)

从左上角到右下角的最短路线

打暴力 50,应该是一个前缀和优化dp吧,忘了怎么写了,家人催着吃饭提前交了

T3 暴力代码

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int n,m;
char g[2010][2010];
int f[2010][2010] = {0};
int main() {
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) cin >> g[i] + 1;
    memset(f, 0x3f, sizeof f);
    f[1][1] = 0;
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j <= m; j ++)
        {
            if(i == 1 && j == 1) continue; 
            for(int k = i - 1; k >= 1; k --)
            {
                if(g[k][j] == '*') break;
                f[i][j] = min(f[i][j], f[k][j] + 1);
            }
            for(int k = j - 1; k >= 1; k --)
            {
                if(g[i][k] == '*') break;
                f[i][j] = min(f[i][j], f[i][k] + 1);
            }
            for(int u = i - 1, v = j - 1; u >= 1 && v >= 1; u --, v --)
            {
                if(g[u][v] == '*') break;
                f[i][j] = min(f[i][j], f[u][v] + 1);
            }    
        }
    }
    if(f[n][m] == 0x3f3f3f3f) cout << -1 << endl;
    else cout << f[n][m] << endl;


正确dp

#京东信息集散地##我的实习求职记录#
全部评论
和楼主一样,二维DP卡50%
1 回复 分享
发布于 2023-08-19 12:06 上海
三维dp直接过
点赞 回复 分享
发布于 2023-08-19 11:56 江苏
一样50,这玩意咋优化啊
点赞 回复 分享
发布于 2023-08-19 11:57 江苏
bfs 60%, 做一个队列调换的优化 100%
点赞 回复 分享
发布于 2023-08-19 11:58 美国
开三位数组,记忆化搜索直接AC
点赞 回复 分享
发布于 2023-08-19 12:00 广东
三维dp只过了75%
点赞 回复 分享
发布于 2023-08-19 12:01 北京
三维动态规划,记录上一次的运动方向,AC了
点赞 回复 分享
发布于 2023-08-19 12:12 湖北
你们笔试后状态是啥,为何我的还是待笔试,是笔试成绩不行吗?
点赞 回复 分享
发布于 2023-08-20 10:21 湖南
同学,阿里控股集团JAVA开发岗投吗?我们和其他业务集团独立招聘,可以多次机会。需要的话,可以联系我。
点赞 回复 分享
发布于 2023-08-21 20:44 浙江

相关推荐

3 9 评论
分享
牛客网
牛客企业服务