1652. Defuse the Bomb LeetCode Solution
In this guide, you will get 1652. Defuse the Bomb LeetCode Solution with the best time and space complexity. The solution to Defuse the Bomb problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Defuse the Bomb solution in C++
- Defuse the Bomb solution in Java
- Defuse the Bomb solution in Python
- Additional Resources

Problem Statement of Defuse the Bomb
You have a bomb to defuse, and your time is running out! Your informer will provide you with a circular array code of length of n and a key k.
To decrypt the code, you must replace every number. All the numbers are replaced simultaneously.
If k > 0, replace the ith number with the sum of the next k numbers.
If k < 0, replace the ith number with the sum of the previous k numbers.
If k == 0, replace the ith number with 0.
As code is circular, the next element of code[n-1] is code[0], and the previous element of code[0] is code[n-1].
Given the circular array code and an integer key k, return the decrypted code to defuse the bomb!
Example 1:
Input: code = [5,7,1,4], k = 3
Output: [12,10,16,13]
Explanation: Each number is replaced by the sum of the next 3 numbers. The decrypted code is [7+1+4, 1+4+5, 4+5+7, 5+7+1]. Notice that the numbers wrap around.
Example 2:
Input: code = [1,2,3,4], k = 0
Output: [0,0,0,0]
Explanation: When k is zero, the numbers are replaced by 0.
Example 3:
Input: code = [2,4,9,3], k = -2
Output: [12,5,6,13]
Explanation: The decrypted code is [3+9, 2+3, 4+2, 9+4]. Notice that the numbers wrap around again. If k is negative, the sum is of the previous numbers.
Constraints:
n == code.length
1 <= n <= 100
1 <= code[i] <= 100
-(n – 1) <= k <= n – 1
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(n)
1652. Defuse the Bomb LeetCode Solution in C++
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 sum = 0;
int start = k > 0 ? 1 : n + k; // the start of the next k numbers
int end = k > 0 ? k : n - 1; // the end of the next k numbers
for (int i = start; i <= end; ++i)
sum += code[i];
for (int i = 0; i < n; ++i) {
ans[i] = sum;
sum -= code[start++ % n];
sum += code[++end % n];
}
return ans;
}
};
/* code provided by PROGIEZ */
1652. Defuse the Bomb LeetCode Solution in Java
class Solution {
public int[] decrypt(int[] code, int k) {
final int n = code.length;
int[] ans = new int[n];
if (k == 0)
return ans;
int sum = 0;
int start = k > 0 ? 1 : n + k; // the start of the next k numbers
int end = k > 0 ? k : n - 1; // the end of the next k numbers
for (int i = start; i <= end; ++i)
sum += code[i];
for (int i = 0; i < n; ++i) {
ans[i] = sum;
sum -= code[start++ % n];
sum += code[++end % n];
}
return ans;
}
}
// code provided by PROGIEZ
1652. Defuse the Bomb LeetCode Solution in Python
class Solution:
def decrypt(self, code: list[int], k: int) -> list[int]:
n = len(code)
ans = [0] * n
if k == 0:
return ans
summ = 0
start = 1 if k > 0 else n + k # the start of the next k numbers
end = k if k > 0 else n - 1 # the end of the next k numbers
for i in range(start, end + 1):
summ += code[i]
for i in range(n):
ans[i] = summ
summ -= code[start % n]
start += 1
end += 1
summ += code[end % n]
return ans
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.