LeetCode 1652. Defuse the Bomb in F#

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)