You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[LeetCode] 1313. Decompress Run-Length Encoded List #1313
We are given a list nums of integers representing a list compressed with run-length encoding.
Consider each adjacent pair of elements [freq, val] = [nums[2*i], nums[2*i+1]] (with i >= 0). For each such pair, there are freq elements with value val concatenated in a sublist. Concatenate all the sublists from left to right to generate the decompressed list.
Return the decompressed list.
Example 1:
Input: nums = [1,2,3,4]
Output: [2,4,4,4]
Explanation: The first pair [1,2] means we have freq = 1 and val = 2 so we generate the array [2].
The second pair [3,4] means we have freq = 3 and val = 4 so we generate [4,4,4].
At the end the concatenation [2] + [4,4,4] is [2,4,4,4].
Example 2:
Input: nums = [1,1,2,3]
Output: [1,3,3]
Constraints:
2 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100
这道题给了一个压缩后的数组,压缩的方法是将相同连续的数字的个数和其本身组成个数对儿,放到压缩数组中,以此类推。现在让我们解压缩成原来的数组,没啥太大的难度,就是每次取出两个数字,前一个数字是次数,后一个是数字本身,用一个 for 循环,就可以生成给定次数个数字,用这种方法就可以解压缩出原数组了,参见代码如下:
class Solution {
public:
vector<int> decompressRLElist(vector<int>& nums) {
vector<int> res;
for (int i = 0; i < nums.size(); i += 2) {
for (int j = 0; j < nums[i]; ++j) {
res.push_back(nums[i + 1]);
}
}
return res;
}
};
Activity
[-][LeetCode] 1313. Missing Problem[/-][+][LeetCode] 1313. Decompress Run-Length Encoded List[/+]