给你一个以行程长度编码压缩的整数列表 nums
。
考虑每相邻两个元素 [a, b] = [nums[2*i], nums[2*i+1]]
(其中 i >= 0
),每一对都表示解压后有 a
个值为 b
的元素。
请你返回解压后的列表。
示例:
输入:nums = [1,2,3,4]
输出:[2,4,4,4]
提示:
2 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100
解题思路
按照题目意思操作即可。
class Solution:
def decompressRLElist(self, nums: List[int]) -> List[int]:
res = []
for i in range(0, len(nums), 2):
res += [nums[i + 1]] * nums[i]
return res
更pythonic
的写法。
class Solution:
def decompressRLElist(self, nums: List[int]) -> List[int]:
return [x for a, b in zip(nums[0::2], nums[1::2]) for x in [b] * a]
我将该问题的其他语言版本添加到了我的GitHub Leetcode
如有问题,希望大家指出!!!