LeetCode Weekly Contest 150 3問目 - As Far from Land as Possible [1162]

Source

LeetCode Weekly Contest 150
問題文

問題概要

省略

解法

省略

cLayversion 20190820-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

int x, y;
int dist[100][100];
int q[10000], qs, qe;

class Solution {
public:
  int maxDistance(vector<vector<int>>& A) {
    int i, j, k;
    int di[4] = {-1,1,0,0}, dj[4] = {0,0,-1,1}, d, si, sj, ni, nj;
    int res = 0;

    x = A.size();
    y = A[0].size();

    rep(i,x) rep(j,y) dist[i][j] = -1;
    qs = qe = 0;

    rep(i,x) rep(j,y) if(A[i][j]==1){
      dist[i][j] = 0;
      q[qe++] = i*y+j;
    }
    while(qs < qe){
      k = q[qs++];
      si = k / y;
      sj = k % y;
      rep(d,4){
        ni = si + di[d];
        nj = sj + dj[d];
        if(ni < 0 || nj < 0 || ni >= x || nj >= y || dist[ni][nj]>=0) continue;
        dist[ni][nj] = dist[si][sj] + 1;
        q[qe++] = ni * y + nj;
      }
    }

    rep(i,x) rep(j,y) res >?= dist[i][j];
    if(res==0) res = -1;
    return res;
  }
};

Current time: 2024年04月27日00時41分05秒
Last modified: 2019年08月20日01時42分20秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: