题解 | 棋盘

棋盘

https://www.nowcoder.com/practice/b8e7884e2cba4646806a90c4a26a65c5

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();
        in.nextLine();

        int[][] grid =new int[n][n];
        for(int i = 0; i < n;i++) {
            for(int j = 0; j < n;j++) {
                grid[i][j] = in.nextInt();
            }
        }
        int q = in.nextInt();
        in.nextLine();
        while(in.hasNextLine()) {
            int left1 = in.nextInt();
            int left2 = in.nextInt();
            int right1 = in.nextInt();
            int right2 = in.nextInt();

            int[] ans = {-1,-1};
            dfs(left1 - 1,left2 - 1,grid,
            left1 - 1,left2 - 1,right1 - 1,right2 - 1,ans);

            System.out.print(ans[0] + 1 + " ");
            System.out.println(ans[1] + 1);
            in.nextLine();
        }
    }
    public static void dfs(int x, int y, int[][] grid,
    int left1, int left2, int right1, int right2,int[] ans) {
        int state = grid[x][y];

        int nx = x + 1 - state;
        int ny = y + state;

        if(nx < 0 || nx >= grid.length 
        || ny < 0|| ny >= grid[0].length ||
        nx < left1 || nx > right1 || 
        ny < left2 || ny > right2) {
            ans[0] = x;
            ans[1] = y;
            return;
        }
        dfs(nx, ny, grid, left1,left2,right1,right2,ans);
    }
}

全部评论

相关推荐

牛客吹哨人:哨哥晚点统一更新到黑名单:能救一个是一个!26届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1525833
点赞 评论 收藏
分享
09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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