Given an m × n board of characters and a list of words, find all words that can be formed by sequentially adjacent cells.
Adjacent means horizontally or vertically neighboring. Each cell can only be used once per word.
With board:
[["o","a","a","n"],
["e","t","a","e"],
["i","h","k","r"],
["i","f","l","v"]]
and words ["oath","pea","eat","rain"], return ["eat","oath"].
"oath": o(0,0) → a(0,1) → t(1,1) → h(2,1). "eat": e(1,0) → a(0,1)? No, let's trace: e(1,0) → a(1,2) → t(1,1). Found.
Constraints: Board up to . Up to words.