Skip to content

Commit 7bc8947

Browse files
easy sliding window two pointers rotation good
1652. Defuse the Bomb Solved Easy Topics Companies Hint 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.
1 parent e7d98ae commit 7bc8947

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

defuse-the-bomb.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class Solution {
2+
public int[] decrypt(int[] code, int k) {
3+
int[] ans=new int[code.length];
4+
if(k==0) return ans;
5+
int start=1;
6+
int end=k;
7+
int sum=0;
8+
int n=code.length;
9+
if(k<0){
10+
start=n-Math.abs(k);
11+
end=n-1;
12+
}
13+
for(int i=start;i<=end;i++){
14+
sum+=code[i];
15+
}
16+
for(int i=0;i<n;i++){
17+
ans[i]=sum;
18+
sum-=code[(start)%n];
19+
sum+=code[(end+1)%n];
20+
start++;
21+
end++;
22+
}
23+
return ans;
24+
}
25+
}

0 commit comments

Comments
 (0)