In effort to learn OCaml, I'm going through some easy LeetCode problems and attempting to implement them. I arrive at the correct answer, but I'm still developing an intuition for canonical OCaml code. I'd appreciate any feedback on my implementation.
As mentioned, this is problem 1 on LeetCode. A quick summary of the problem: given an array of integers, return the indices of the 2 numbers that sum to a given "target".
For example, given
nums: [2, 7, 11, 15] and
target: 13, the result should be
[0, 2] (the integers at indices
2 sum to
Furthermore, we can assume a unique solution exists for the given array and target.
Here is my refined attempt at implementing this in OCaml:
let two_sum nums target = let rec aux i j = let n1 = List.nth nums i in let n2 = List.nth nums j in if n1 + n2 = target then [i; j] else if j = (List.length nums) - 1 then aux (i + 1) (i + 2) else aux i (j + 1) in aux 0 1;;
I appreciate any feedback.