解压缩编码列表

作者: _阿南_ | 来源:发表于2020-01-18 18:42 被阅读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计算出来:

  • i = 0 [nums[0], nums[1]] -> [1, 2] -> a = 1, b = 2
  • i = 1 [nums[2], nums[3]] -> [3, 4] -> a = 3, b = 4
    按"表示解压后有 a 个值为 b 的元素"得出:
  • 有1个值为2的元素
  • 有3个值为4的元素
    总结:[2, 4, 4, 4]

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 一句一句分析题目,搞定

相关文章

  • LeetCode题解之解压缩编码列表

    解压缩编码列表 题目描述 给你一个以行程长度编码压缩的整数列表 nums 。 考虑每对相邻的两个元素 [freq,...

  • 解压缩编码列表

    题目: 很尴尬,每次看到算法题的第一反应是,我在哪,我是谁,我是干啥,它在说啥,没看懂。 题目的理解: 按提示i ...

  • 1313_decompress_run_length_encod

    题目描述 1313. 解压缩编码列表 思路 没啥说的,很好做,一下子想到了python的list.extends,...

  • LeetCode 1313. 解压缩编码列表

    题目 给你一个以行程长度编码压缩的整数列表 nums 。 考虑每对相邻的两个元素 [freq, val] = [n...

  • LeetCode 1313. 解压缩编码列表

    给你一个以行程长度编码压缩的整数列表 nums 。考虑每对相邻的两个元素 [a, b] = [nums[2 * i...

  • Redis 列表对象

    列表对象的编码可以是 ziplist 或 linkedlist ziplist 编码的列表对象使用压缩列表作为底层...

  • 8.3 列表对象

    列表对象的编码可以是ziplist或者linkedlistziplist编码的列表对象使用压缩列表作为底层实现,每...

  • IOS 算法(基础篇) ----- 解压缩编码列表

    给你一个以行程长度编码压缩的整数列表 nums 。考虑每对相邻的两个元素 [freq, val] = [nums[...

  • 基于哈夫曼算法的压缩解压缩程序--python实现

    一.实现效果 【压缩】 【解压缩】 【压缩效率】 二.哈夫曼算法 哈夫曼又称霍夫曼编码,是一种编码方式,哈夫曼编码...

  • 8.6 有序集合对象

    有序集合对象的编码可以是ziplist或者skiplistziplist编码的压缩列表对象使用压缩列表作为底层实现...

网友评论

    本文标题:解压缩编码列表

    本文链接:https://www.haomeiwen.com/subject/wkzkzctx.html