【leetcode】1652. 拆炸弹

int* decrypt(int* code, int codeSize, int k, int* returnSize){
    *returnSize = codeSize;
    int* arr = (int*)calloc(sizeof(int), codeSize);
    int i, left, right;
    for (i = 1; i<codeSize; i++)
        code[i] += code[i - 1];
    for (int i = 0; i<codeSize && k != 0; i++){
        if (k>0){
            arr[i] = code[(i + k) % codeSize] - code[i];
            if ((i + k) % codeSize < i)
                arr[i] += code[codeSize - 1];
        }
        else{
            arr[i] = code[(i - 1 + codeSize) % codeSize] - code[(i + k - 1+codeSize)%codeSize];
            if ((i - 1 + codeSize) % codeSize < (i + k - 1 + codeSize) % codeSize)
                arr[i] += code[codeSize - 1];
        }
    }
    return arr;
}
原文地址:https://www.cnblogs.com/ganxiang/p/14021100.html