LeetCode 967. Numbers With Same Consecutive Differences in F#
URL
leetcode.com/problems/numbers-with-same-con..
Code
github.com/syohex/dotnet-study/blob/master/..
let numsSameConsecDiff (n: int) (k: int) : int list =
let rec numsSameConsecDiff' num i n k acc =
if i = n then
num :: acc
else
let digit = num % 10
let acc' =
if digit - k >= 0 then
numsSameConsecDiff' ((num * 10) + (digit - k)) (i + 1) n k acc
else
acc
if k <> 0 && digit + k <= 9 then
numsSameConsecDiff' ((num * 10) + (digit + k)) (i + 1) n k acc'
else
acc'
seq { 1 .. 9 }
|> Seq.fold (fun acc i -> numsSameConsecDiff' i 1 n k acc) []
|> List.sort