Problem statement

https://leetcode.com/problems/moving-stones-until-consecutive/

Solution

First of all, value max - min will change at least by one on each step, so maximum number of steps is c - a - 2, where we sorted values. Also it is always enough to make no more than 2 steps to make them consecutive,If they already consecutive, nubmer of steps is 0. If some pair is consecutive or have gap 2, then number of steps is 1, else it is 2.

Complexity

It is O(1) for time and space.

Code

class Solution:
    def numMovesStones(self, a, b, c):
        a, b, c = sorted([a, b, c])
        mx = c - a - 2
        mn = 0 if c - a == 2 else 1 if b - a <= 2 or c - b <= 2 else 2
        return [mn, mx]