题目:1652. 拆炸弹
class Solution {
public:
vector<int> decrypt(vector<int>& code, int k) {
int n = code.size();
if(k == 0){
vector<int> res(n,0);
return res;
}else if(k>0){
vector<int> res(n,0);
for(int i=0;i<n;++i){
int index = i;
for(int j=0;j<k;++j){
index = next(n,index);
res[i] += code[index];
}
}
return res;
}else if(k<0){
vector<int> res(n,0);
for(int i=0;i<n;++i){
int index = i;
for(int j=0;j<-k;++j){
index = prev(n,index);
res[i] += code[index];
}
}
return res;
}
return code;
}
inline int next(int n,int index){
return index+1 == n?0:index+1;
}
inline int prev(int n,int index){
return index-1 == -1?n-1:index-1;
}
};