前往
大廳
主題

LeetCode - 1313. Decompress Run-Length Encoded List 解題心得

Not In My Back Yard | 2021-12-24 00:00:01 | 巴幣 0 | 人氣 327

題目連結:


題目意譯:
我們被給定一個整數列表 nums,代表一個藉由連續長度編碼(Run-Length Encoding)壓縮後的一個列表。

考慮每個相鄰元素對 [freq, val] = [nums[2i], nums[2i + 1]](其中 i ≧ 0)。對於每個這樣子的元素對,將會有 freq 個有著數值 val 的元素串接地出現於子列表中。將所有子列表從左至右串接起來便得到了解壓縮後的列表。

回傳該解壓縮後的列表。

限制:
2 ≦ nums.length ≦ 100
nums.length % 2 == 0
1 ≦ nums[i] ≦ 100



範例測資:
範例 1:
輸入: nums = [1,2,3,4]
輸出: [2,4,4,4]
解釋: 第一對 [1,2] 代表著我們有 freq = 1 且 val = 2 因此我們生成陣列 [2]。
第二對 [3,4] 代表著我們有 freq = 3 且 val = 4 所以我們生成 [4,4,4]。
最後串列 [2] + [4,4,4] 為 [2,4,4,4]。

範例 2:
輸入: nums = [1,1,2,3]
輸出: [1,3,3]


解題思維:
就是單純地按照題目所述去生成子陣列再串接即可;不過也可以利用一個長度可變的陣列(例如 C++ 的 vector)然後對於每對 [freq, val] 在該陣列結尾推入 freq 個 val 之值。最後的陣列也同為所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作