1387.将整数按权重排序
链接:1387.将整数按权重排序
难度:Medium
标签:记忆化搜索、动态规划、排序
简介:请你返回区间 [lo, hi] 之间的整数按权重排序后的第 k 个数。
题解 1 - python
- 编辑时间:2024-12-22
- 执行用时:19ms
- 内存消耗:18.09MB
- 编程语言:python
- 解法介绍:排序
@cache
def get(val: int) -> int:
if val == 1: return 0
if val % 2 == 0: return 1 + get(val // 2)
else: return 1 + get(val * 3 + 1)
class Solution:
def getKth(self, lo: int, hi: int, k: int) -> int:
return sorted([v for v in range(lo, hi + 1)], key = lambda v: (get(v), v))[k - 1]