URL
Defuse the Bomb - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/challenge/202411/defuse_the_bomb/main.fsx
let decrypt (code: int[]) (k: int) : int[] =
let len = Array.length code
if k = 0 then
Array.zeroCreate len
else if k > 0 then
[| 0 .. (len - 1) |]
|> Array.map (fun i -> seq { 1..k } |> Seq.fold (fun acc j -> acc + code.[(i + j) % len]) 0)
else
let k = -k
[| 0 .. (len - 1) |]
|> Array.map (fun i -> seq { 1..k } |> Seq.fold (fun acc j -> acc + code.[(len + i - j) % len]) 0)