跳到主要内容

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]