解压缩编码列表
问题:
给你一个以行程长度编码压缩的整数列表 nums 。
考虑每对相邻的两个元素[freq, val] = [nums[2*i], nums[2*i+1]]
(其中 i >= 0 ),每一对都表示解压后子列表中有 freq 个值为 val 的元素,你需要从左到右连接所有子列表以生成解压后的列表。
请你返回解压后的列表。
思路:
以步长为 2 遍历数组,像问题中所描述的那样添加元素到新的数组并返回。
class Solution {
public:
vector<int> decompressRLElist(const vector<int>& nums) {
vector<int> res;
for(int i = 0; i < nums.size() - 1; i += 2) {
for(int k = 0; k < nums[i]; ++k) {
res.push_back(nums[i + 1]);
}
}
return res;
}
};