LeetCode Biweekly Contest 8
問題文
省略
省略
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)