concise python 3 solution w/ explanation
py\nclass Solution:\n    def numMovesStones(self, a: int, b: int, c: int) -> List[int]:\n        # find out the smaller, middle and larger one of three elements
```py\nclass Solution:\n    def numMovesStones(self, a: int, b: int, c: int) -> List[int]:\n        # find out the smaller, middle and larger one of three elements, namely l, m, r \n        l, r = min(a, b, c), max(a, b, c)\n        m = a + b + c - l - r\n        \n        # note: to get the maximum moves, we can move l or r 1 position at time \n        # to shrink the interval between l and r at the minimum rate\n        # so the maximum move is always equal to r - l + 1 - 3 = r - l - 2\n        \n        # in case values are already close to each other \n        if r - l == 2:\n            return [0, 0]\n        # in such cases, minimum move is 1\n        # case 1: l is next to m, just move r to l - 1 or m + 1\n        # case 2: l, ?, m, just move r into ? between l and m \n        # case 3: m, ?, r, just move l into ? between m and r \n        # case 4: m is next to r, just move l to m - 1 or r + 1\n        elif m - l <= 2 or r - m <= 2:\n            return [1, r - l - 2]\n    \n        # in other case, the minimum move is at most 2, because no matter\n        # how far l is from m and r is from m, we can just move l to m - 1\n        # and move r to m + 1 to make them become consecutive \n        else:\n            return [2, r - l - 2]\n```\nHappy Coding~
[]