LeetCode Biweekly Contest 8 3問目 - Shortest Distance to Target Color [1182]

Source

LeetCode Biweekly Contest 8
問題文

問題概要

省略

解法

省略

cLayversion 20190914-1)のコード

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

#define main dummy_main
{}
#undef main

int N;
int lf[3][50000], rg[3][50000];

class Solution {
public:
  vector<int> shortestDistanceColor(vector<int>& colors, vector<vector<int>>& q) {
    int i, j, k, t;
    vector<int> res;

    N = colors.size();
    rep(i,N){
      rep(k,3){
        if(i==0) lf[k][i] = -int_inf;
        else     lf[k][i] = lf[k][i-1];
        if(colors[i]==k+1) lf[k][i] = i;
      }
    }
    for(i=N-1;i>=0;i--){
      rep(k,3){
        if(i==N-1) rg[k][i] = int_inf;
        else       rg[k][i] = rg[k][i+1];
        if(colors[i]==k+1) rg[k][i] = i;
      }
    }

    rep(k,q.size()){
      i = q[k][0];
      j = q[k][1] - 1;
      t = min(i-lf[j][i], rg[j][i]-i);
      if(t > N) t = -1;
      res.push_back(t);
    }

    return res;
  }
};

Current time: 2024年03月29日15時22分37秒
Last modified: 2019年09月14日17時11分53秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: