Участник:Turk0v/Sort Integers by The Power Value

Материал из DISCOPAL
Перейти к: навигация, поиск
class Solution:
    onhold_val = [0] * 1001
    def getKth(self, lo: int, hi: int, k: int) -> int:
        def recurfunc(n):
            if self.onhold_val[n] > 0:
                return self.onhold_val[n]
            tmp_step, dn = 0, n
            while n > 1:
                n = n // 2 if n % 2 == 0 else 3 * n + 1
                tmp_step += 1
            self.onhold_val[dn] = tmp_step
            return tmp_step
 
        res_list = sorted(range(lo, hi + 1), key=lambda e: recurfunc(e))
        return res_list[k - 1]