Unique, intuitive solution using two booleans. Beats 82%.
Intuition\nWe need to find the minimum and maximum number of moves.\n\nThe maximum number of moves is simple: just move the stones one step at a time until they
# Intuition\nWe need to find the minimum and maximum number of moves.\n\nThe maximum number of moves is simple: just move the stones one step at a time until they are next to the mid-stone. Thus, the max moves is the distance between the endpoints minus 2, to account for not moving onto the mid-stone.\n\nSo `max_moves = c - a - 2`.\n\nLet\'s think about the minimum moves. \n* 2 is the maximum number of minimum moves, because if the stones were very far apart, we can bring them next to each other in just two moves; move each endpoint all the way using one move each. \n* The lowest possible minimum moves is 0, when all three stones start off next to each other. \n* That leaves us to think about cases where only 1 move is needed.\n    * If the minimum distance from the mid-stone is 1, then we need 1 move to bring the other stone next to the mid-stone.\n    * If the min distance from the mid-stone is 2, then we need 1 move to bring the other stone into the mid-stone.\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\nWe can now simplify the above cases by thinking about the conditions needed to move the "closer" and "other" stone from the mid-stone (they can also be equidistant). \n* We only need to move the closer stone if it\'s at most 2 steps away from the mid-stone.\n    * `move_closer_stone = min_dist > 2`  \n* We only need to move the other stone if it\'s more than 1 step away from the mid-stone.\n    * `move_other_stone = max_dist > 1`\n\nWe now have defined two booleans that tell us if we need to move each endpoint. Adding the two booleans will tell us the minimum number of moves needed to make the stones consecutive.\n\n# Complexity\n- Time complexity: O(1)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(1)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution:\n    def numMovesStones(self, a: int, b: int, c: int) -> List[int]:\n        a, b, c = sorted((a,b,c))\n        min_dist = min(b-a, c-b)\n        max_dist = max(b-a, c-b)\n\n        max_moves = c - a - 2\n        min_moves = (min_dist > 2) + (max_dist > 1)\n\n        return [min_moves, max_moves]\n```
['Python3']