LeetCode #1313 “Decompress Run-Length Encoded List”

Opening

Easy

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

Solution

There is a list of integers and you have to expand them. It’s a test on loop understanding.

for every two items
expand the item based on the frequency

In Python, it may look something like:

class Solution:
def decompressRLElist(self, nums: List[int]) -> List[int]:
decompressed = []

for i in range(0, len(nums)-1, 2):
decompressed = decompressed + nums[i] * [nums[i+1]]

return decompressed

Start off with an empty decompressed list. For every pair, decompress, then append the number that expanded based on frequency to the list in that order.

Don’t use append, it would actually just multiply the number. By doing what I did here, you would multiply the number as a list object by the frequency.

--

--

--

I write just in case death knocks

Love podcasts or audiobooks? Learn on the go with our new app.

Newsmag v5.2 — Newspaper & Magazine WordPress Theme

Divide And Conquer 🌎

The Startup is dead, long live the Startup

Podcast: Cloud for Builders Developer’s guide to building applications

Gelato’s Art Vernissage

Road to Genius: genius #68

DevOps & SRE: competitors or companions?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Cassy

Cassy

I write just in case death knocks

More from Medium

LeetCode — Repeated Substring Pattern

LeetCode — Minimum Difficulty of a Job Schedule

Meta/Microsoft/Amazon — 173. Binary Search Tree Iterator

How to solve the Maximum Score from Performing Multiplication Operations Problem