# LeetCode 1652. Defuse the Bomb https://leetcode.com/problems/defuse-the-bomb/description/ ## 題目大意 拆除炸彈遊戲 給定長度為 `n` 的環狀陣列 `code` 和密鑰 `k` - 如果 `k > 0` 將第 `i` 個數字替換為後 `k` 個數字的總和 - 如果 `k < 0` 將第 `i` 個數字替換為前 `k` 個數字的總和 - 如果 `k == 0` 將第 `i` 個數字替換為 0 ## 思考 依照題意即可 C++ 參考答案: ```cpp! class Solution { public: vector<int> decrypt(vector<int> &code, int k) { const int n = code.size(); vector<int> ans(n); if (k == 0) return ans; int sign = 1; if (k < 0) { k *= -1; sign = -1; } for (int i = 0; i < n; ++i) { for (int j = 1; j <= k; ++j) { ans[i] += code[(i + j * sign + n) % n]; } } return ans; } }; ``` Go 參考答案: ```go! func decrypt(code []int, k int) []int { n := len(code) ans := make([]int, n) if k == 0 { return ans } sign := 1 if k < 0 { k = -k sign = -1 } for i := 0; i < n; i++ { for j := 1; j <= k; j++ { ans[i] += code[(i+j*sign+n)%n] } } return ans } ```