1313. Decompress Run-Length Encoded List

#### QUESTION:

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[2i], nums[2i+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
``````

#### EXPLANATION:

1. 遍历0，2，4…偶数下标，获取到新数组长度
2. 遍历数组，获取到0，1下标的freq和val，进行填充，同时定义index用来表示在result中的位置，index每次增加为num[freq]的结果
3. 重复第二步，直到填充完成

#### SOLUTION:

``````class Solution {
public int[] decompressRLElist(int[] nums) {
int length = 0;
for(int i = 0;i<nums.length;i+=2) length+= nums[i];
int[] result = new int[length];
int index = 0;
int anchor = 0;
while (index<length){
int freq = nums[anchor];
int val = nums[anchor+1];
int tmp = 0;
while(tmp<freq){
result[index] = val;
index++;
tmp++;
}
anchor+=2;
}
return result;
}
}
``````
>