算法提高之LeetCode刷题

解压缩编码列表

2020-01-18  本文已影响0人  _阿南_

题目:

给你一个以行程长度编码压缩的整数列表 nums 。
考虑每相邻两个元素 [a, b] = [nums[2*i], nums[2*i+1]] (其中 i >= 0 ),每一对都表示解压后有 a 个值为 b 的元素。
请你返回解压后的列表。

示例:
输入:nums = [1,2,3,4]
输出:[2,4,4,4]
 
提示:
2 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

很尴尬,每次看到算法题的第一反应是,我在哪,我是谁,我是干啥,它在说啥,没看懂。

题目的理解:

按提示i >= 0 来将a b计算出来:

python实现

class Solution:
    def decompressRLElist(self, nums: List[int]) -> List[int]:
        result = list()
        i = 0

        while True:
            left = 2 * i
            right = 2 * i + 1

            if left >= len(nums) or right >= len(nums):
                break

            a = nums[left]
            b = nums[right]
            
            for index in range(a):
                result.append(b)

            i += 1

        return result

提交

执行代码测试下,得到预计结果,提交。


成功

// END 一句一句分析题目,搞定

上一篇 下一篇

猜你喜欢

热点阅读