Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 1.36 KB

File metadata and controls

54 lines (42 loc) · 1.36 KB

1313. Decompress Run-Length Encoded List

We are given a list nums of integers representing a list compressed with run-length encoding.

Consider each adjacent pair of elements [a, b] = [nums[2*i], nums[2*i+1]] (with i >= 0). For each such pair, there are a elements with value b in 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,4] is [2,4,4,4].

Constraints:

  • 2 <= nums.length <= 100
  • nums.length % 2 == 0
  • 1 <= nums[i] <= 100

Solutions (Ruby)

1. Solution

# @param {Integer[]} nums
# @return {Integer[]}
def decompress_rl_elist(nums)
    ret = []

    for i in (0...nums.length).step(2)
        ret.concat([nums[i + 1]] * nums[i])
    end

    return ret
end

Solutions (Rust)

1. Solution

impl Solution {
    pub fn decompress_rl_elist(nums: Vec<i32>) -> Vec<i32> {
        let mut ret = Vec::new();

        for i in (0..nums.len()).step_by(2) {
            ret.append(&mut vec![nums[i + 1]; nums[i] as usize]);
        }

        ret
    }
}