Defuse the Bomb - Array - Easy - LeetCode
💻 coding

Defuse the Bomb - Array - Easy - LeetCode

2 min read 346 words
2 min read
ShareWhatsAppPost on X
  • 1To decrypt the circular array code, replace each number based on the integer key k, which determines the sum of surrounding elements.
  • 2If k is positive, each number is replaced by the sum of the next k numbers; if k is negative, by the previous k numbers.
  • 3When k is zero, all numbers in the array are replaced with zero, resulting in an array of zeros.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"To decrypt the circular array code, replace each number based on the integer key k, which determines the sum of surrounding elements."

Defuse the Bomb - Array - Easy - LeetCode

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

public class Solution {
 public int[] Decrypt(int[] code, int k) {
 var result = new int[code.Length];
 if(k==0){
 return result;
 } 
 else if(k > 0){
 for(int i=0;i<code.Length;i++){
 int sum = 0;
 for(int j=0;j<k;j++){
 var index = (i+j+1) % code.Length;
 sum += code[index];
 }
 result[i]=sum;
 } 
 }
 else{
 for(int i=0;i<code.Length;i++){
 var sum = 0;
 for(int j=0;j<Math.Abs(k);j++){
 var index = i-j-1;
 if(index <0){
 index = code.Length + index;
 }
 sum += code[index];
 }
 result[i]=sum;
 }
 }
 
 return result;
 }
}

Time Complexity: O(n*k)

Space Complexity: O(1)

Where n is the length of array and k is the count of number whose sum is required.

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 15 November 2020 · 2 min read · 346 words

Part of AskGif Blog · coding

You might also like